Find all polynomials $f(x)$ which satisfy
$$
f(x) f(x+1) = f \left( x^2 + x+ 1 \right). $$
Substituting $x-1$ in place of $x$, we get
$$ f(x) f(x-1) = f \left( x^2 - x+ 1 \right) . $$
Therefore, if $r$ is a root of $f(x)$, then so are $r^2 + r + 1$ and $r^2 -r + 1$.
Claim. If $r \ne \pm i$ is a root of $f$, then at least one of $r^2 + r + 1$ and $r^2 -r + 1$ have strictly higher magnitude than $r$.
Proof of Claim. Assume the contrary. Then $|r| \ge |r^2 + r +1 |$ and $|r| \ge |r^2 -r +1 |$. So we have
$$ 2 | r| \ge |r^2 + r + 1| + |-r^2 + r - 1| \ge |\left( r^2 + r + 1 \right) + \left( -r^2 + r - 1 \right)| = |2r| . $$
So we must have equality cases throughout, i.e. $|r| = |r^2 + r +1|= |r^2 -r +1|$ and we must have the equality case of triangle inequality in $|r^2 + r + 1| + |-r^2 + r - 1| \ge |2r|$. The equality case of triangle inequality implies that $r^2 + r + 1$ and $-r^2 + r - 1$ have the same argument. We previously established that they have the same modulus as well. So they must be the same complex numbers:
$$ r^2 + r + 1 = -r^2 + r - 1 . $$
This gives us $r^2 + 1 = 0$, which contradicts with $r \ne \pm i$. Therefore, at least one of $r^2 + r + 1$ and $r^2 -r + 1$ have strictly higher magnitude than $r$. The proves the claim.
If $r \ne \pm i$ is a root of $f(x)$, then we consider the following sequence of roots of $f(x)$ with strictly increasing modulus:
$$ z_0 = r , \quad z_{n+1} = \begin{cases} z_n^2 + z_n + 1 & \quad \text{if } |z_n^2 + z_n + 1| > |z_n|, \\ z_n^2 - z_n + 1 & \quad \text{if } |z_n^2 - z_n + 1| > |z_n|. \end{cases} $$
This sequence never hits $\pm i$, since the only solutions of $x^2 \pm x + 1 = \pm i$ is $x=\pm i$. So we get an infinite sequence of roots of $f (x)$. This can't be possible since $f(x)$ is a polynomial. Therefore, $f(x)$ doesn't have any other roots than $\pm i$. Hence,
$$ f(x) = C \left( x- i \right)^m \left( x + i \right)^n , $$
for $m,n \ge 0$. If $m\ne n$, we can divide $f(x)$ by $\left( x^2 + 1 \right)^{\min \{m,n\}}$ to get another polynomial $g(x)$ which also satisfies the given equation. So if $\pm i$ is a root of $g (x)$, so is $\left(\pm i\right)^2 -\mp i + 1 = \mp i$. Therefore, $m$ and $n$ must be equal. So $f(x) = C \left( x^2 +1 \right)^n$ for $n \ge 0$. Substituting $x=0$ in the given equation gives
$$ f(0) f(1) = f(1) \implies C \cdot C 2^n = C 2^n \implies C = 0 \text{ or } 1. $$
Therefore, the solutions are $f(x) = C \left( x^2 +1 \right)^n$, with $C \in \{0,1\}$.