The answer is all functions of the form f(x)=kx for some k∈N. These clearly work: now let us prove they are the only possibilities.
Since x+a has an integer root (namely, −a) for any a∈N, so does f(1)x+f(a), implying f(1)∣f(a) for all a∈N. Now the function g:N→N defined by g(x)=f(x)/f(1) satisfies the same conditions as f, so WLOG, we may assume f(1)=1.
Now the polynomial for any n∈N, nx2+(n+1)x+1 has a root −1, so f(n)x2+f(n+1)x+f(1)=f(n)x2+f(n+1)x+1 has an integer root, which must be negative. Call this number −k. Therefore
f(n+1)k=f(n)k2+1>f(n)⋅k⟹f(n+1)>f(n),
so that f(n+1)≥f(n)+1.
Now we prove by induction that f(n)=n for every n∈N. The base case is clear, now consider some m=n+1>1 and assume f(n)=n. The polynomial x2+(n+1)x+n has the root −1, so f(1)x2+f(n+1)x+f(n)=x2+f(n+1)x+n has an integer. Since the sum of its roots is −f(n+1), an integer, both roots are in fact integers. Further, the roots must be negative and their product is n, so they are −d and −n/d for some positive divisor d of n. Therefore f(n+1)=d+dn. However, the inequality
d+dn≤n+1⟺(n−d)(1−d1)≥0
holds, so we must have
n+1≥d+dn=f(n+1)≥f(n)+1=n+1,
forcing f(n+1)=n+1 as desired. □