$f(x)=x: \forall x\in \mathbb R$ is the only answer.
Let $P(x,y)$ be the assertion of problem.
Let $c = f(0)$. By $P(x,0)$ we have $f(f(x))= f(x)(c+1)$. So $f(f(x+y)) = f(x+y)(c+1)$ and then we will get the following equation
$$Q(x,y) :\;\; cf(x+y) = f(x)f(y)+axy.$$
If $c=0$ then $f(x)f(y) = -axy$ which gives $f(x) = dx$ for some real $d$. Plugging this to $P(x,y)$ we get that $d^2 = d$ and $d^2+a =0$. So $\boxed{f(x)=x:\;\; \forall x\in \mathbb R,\; a=-1}$.
If $c\neq 0$ then from $Q(x,y+z)$ and $Q(y,z)$ we get
$$cf(x+y+z) = f(x)f(y+z)+ax(y+z) = \frac{1}{c}f(x)f(y)f(z) + \frac{1}{c}ayzf(x)+ axy+axz.$$Left hand side is symmetric w.r.t $x,y,z$ so by $x\leftrightarrow y$ we have
$$ \frac{1}{c}ayzf(x)+axz = \frac{1}{c}axzf(y)+ayz \rightarrow ayf(x)+acx = axf(y)+acy.$$Putting $y=1$ in the last equation gives us that $f(x)=kx+c$ for some real $k$. Plugging this to $P(x,y)$ gives that
$$k^2 = k+kc,\; a+k^2 =0,\; c+c^2=kc+c.$$Noting that $k\neq 0$ (because $f$ cannot be a constant function) we have $c=0$ which is not true in this case and we are done.