My solution builds on Patrick Stevens's answer. For now on, I'm considering the case where $f$ isn't zero everywhere, and I'll prove that $f(x)=-x$ everywhere.
We already have $f(x+1)=f(x)-1$ for $x\ge 0$. But this is true for all $x$, here's why. Let $t \ge 0$ and set $x=1$ and $y=\sqrt{t}$ in the original identity, using $f(x^2)=-f(x)^2$. We get $f(1-t)=-1-f(t)$. Substitute $t=1-s$ to get $f(s)=-1-f(1-s)$ for $s \le 1$. Therefore, $f(x)+f(1-x)=-1$ for all $x$. Using sign-reversal and induction, we find $$ f(x+n)=f(x)-n $$ for all real $x$ and integer $n$.
Let $n$ be an integer and $t \ge 0$ be a real. Set $x=-n$ and $y=\sqrt{t}$ to get $f(n^2 + t f(n))=f(n^2) - n f(t)$, which leads to $f(-tn)-n^2=-n^2 - n f(t)$, then $f(n t) = n f(t)$. Using sign-reversal, this is also true when $t$ is negative, so (replacing $t$ with $x$) $$ f(n x) = n f(x) $$ for all real $x$ and integer $n$.
Replace $x$ with $x/n$ to find $ f(x/n) = n f(x/n)/n = f(nx/n)/n = f(x)/n $. Let $a$ be an integer and $b$ be a positive integer. Then $f((a/b)x) = f(a(x/b)) = a f(x/b) = a f(x) / b = (a/b)f(x)$ and $f(x + a/b) = f((bx + a)/b) = f(bx + a)/b = (f(bx) - a)/b = f(bx)/b - a/b = f(x) - a/b$. So $$\begin{align} f(x+q) &= f(x)-q \\ f(qx) &= q f(x) \end{align}$$ for all real $x$ and rational $q$.
$f(q)=-q$ for all rational $q$. Now let's show that it's true for irrational values.
We already know that $f$ if negative over positive values, and vice versa. Let $x$ be any irrational number, and let $q < x$ be some rational number. Then $f(x-q)=f(x)+q$. Since $x-q$ is positive, $f(x-q)$ is negative, and so $f(x)<-q$. We can choose $q$ to be as close as we want, so $f(x) \le -x$. Doing the same from the other side shows $f(x) \ge -x$.
It's possible to show that $ f ( x ) = 1 - \frac 1 x $ gives the only injective solution.
Let's first look at the question a bit more generally. Consider an $ f : \mathbb R \setminus \{ 0 \} \to \mathbb R $ satisfying
$$ f ( x y ) = f ( x ) f ( - y ) - f ( x ) + f ( y ) \tag 0 \label 0 $$
for all $ x , y \in \mathbb R \setminus \{ 0 \} $. Putting $ x = 1 $ and $ y = - 1 $ in \eqref{0}, we get $ f ( 1 ) \in \{ 0 , 1 \} $. In case $ f ( 1 ) = 1 $, setting $ x = y = 1 $ in \eqref{0}, we get $ f ( - 1 ) = 1 $, which then letting $ y = 1 $ in \eqref{0} shows $ f ( x ) = 1 $ for all $ x \in \mathbb R \setminus \{ 0 \} $, which contradicts injectivity of $ f $. Hence $ f ( 1 ) = 0 $. Putting $ x = - 1 $ and $ y = 1 $ in \eqref{0}, we get $ f ( - 1 ) \in \{ 0 , 2 \} $. In case $ f ( - 1 ) = 0 $, setting $ y = 1 $ in \eqref{0} implies $ f ( x ) = 0 $ for all $ x \in \mathbb R \setminus \{ 0 \} $, which contradicts injectivity of $ f $. Thus $ f ( - 1 ) = 2 $. Letting $ y = - 1 $ in \eqref{0}, we have
$$ f ( - x ) = 2 - f ( x ) \tag 1 \label 1 $$
for all $ x \in \mathbb R \setminus \{ 0 \} $. \eqref{0} and \eqref{1} together imply
$$ f ( x y ) = f ( x ) + f ( y ) - f ( x ) f ( y ) \tag 2 \label 2 $$
for all $ x , y \in \mathbb R \setminus \{ 0 \} $. In particular, setting $ y = \frac 1 x $ in \eqref{2}, we have
$$ \bigl ( f ( x ) - 1 \bigr ) f \left ( \frac 1 x \right ) = f ( x ) \tag 3 \label 3 $$
for all $ x \in \mathbb R \setminus \{ 0 \} $. Note that for any $ x \in \mathbb R \setminus \{ 0 \} $, if $ f ( x ) \ne 0 $, then the left-hand side of \eqref{3} must be nonzero, and thus $ f ( x ) \ne 1 $. As we have $ y \ne 0 $ or $ y \ne 1 $ for any $ y \in \mathbb R $, we can conclude $ f ( x ) \ne 1 $ for all $ x \in \mathbb R \setminus \{ 0 \} $. Therefore, $ f $ takes values only in $ \mathbb R \setminus \{ 1 \} $, similar to what is posed in the original question. Knowing this, also note that for any $ x \in \mathbb R \setminus \{ 0 \} $, we have $ f \left ( \frac 1 x \right ) \ne 0 $ if $ f ( x ) \ne 0 $.
Before taking the second functional equation into account, note that the expression $ f \bigl ( f ( x ) \bigr ) $ only has meaning for those $ x \in \mathbb R \setminus \{ 0 \} $ for which $ f ( x ) \ne 0 $, as $ f ( x ) $ must be in the domain of $ f $. So, when stating that the second functional equation holds for all $ x \in \mathbb R \setminus \{ 0 , 1 \} $, you're implicitly assuming that $ f ( x ) \ne 0 $ for all $ x \in \mathbb R \setminus \{ 0 , 1 \} $. There's another implicit assumption, namely that $ f \left ( \frac 1 x \right ) \ne 0 $ for all $ x \in \mathbb R \setminus \{ 0 , 1 \} $, because $ f \left ( \frac 1 x \right ) $ has appeared in the denominator. But we've proven that this requirement follows from $ f ( x ) \ne 0 $, and thus it is a consequence of the other mentioned assumption. So, let's assume that $ f $ satisfies
$$ f \bigl ( f ( x ) \bigr ) = \frac 1 { f \left ( \frac 1 x \right ) } \tag 4 \label 4 $$
for all $ x \in \mathbb R \setminus \{ 0 , 1 \} $. By \eqref{3} and \eqref{4}, we have
$$ f \bigl ( f ( x ) \bigr ) = 1 - \frac 1 { f ( x ) } \tag 5 \label 5 $$
for all $ x \in \mathbb R \setminus \{ 0 , 1 \} $. Taking $ f $ from both sides of \eqref{5} and comparing it with the result of substituting $ f ( x ) $ for $ x $ in \eqref{5}, we get
$$ f \left ( 1 - \frac 1 { f ( x ) } \right ) = f \Bigl ( f \bigl ( f ( x ) \bigr ) \Bigr ) = 1 - \frac 1 { f \bigl ( f ( x ) \bigr ) } $$
for all $ x \in \mathbb R \setminus \{ 0 , 1 \} $, which using \eqref{5} shows
$$ f \left ( 1 - \frac 1 { f ( x ) } \right ) = \frac 1 { 1 - f ( x ) } \tag 6 \label 6 $$
for all $ x \in \mathbb R \setminus \{ 0 , 1 \} $. Again, substituting $ f ( x ) $ for $ x $ in \eqref{6} and using \eqref{5}, we have
$$ f \left ( \frac 1 { 1 - f ( x ) } \right ) = f ( x ) $$
for all $ x \in \mathbb R \setminus \{ 0 , 1 \} $, which by injectivity of $ f $ yields $ \frac 1 { 1 - f ( x ) } = x $, for all $ x \in \mathbb R \setminus \{ 0 , 1 \} $. As $ f ( 1 ) = 0 $, we have $ f ( x ) = 1 - \frac 1 x $ for all $ \mathbb R \setminus \{ 0 \} $.
Best Answer
The case $f(1) \neq 0$ already grants $f \equiv 0$ with what OP already did, so let's look at the case $f(1) = 1$.
Thanks to $f(0) = 0$ showed by OP, we have: $$P(-1, y):\quad -f(y - 1) + f(y) = f((-1)^2) = f(1) = 1$$ As such, by taking $y+1$ instead of $y$: $$\forall y \in \mathbb{R},\quad f(y +1) = f(y) + 1 \tag{$1$}$$ Therefore $P(x,y)$ is equivalent to: $xf(x+y) = f(y)f(x) + f(x^2)$.
Afterwards: $$P(x,0):\quad xf(x) = f(x^2)$$ Since $x^2 = (-x)^2$, this gives: $xf(x) = f(x^2) = -xf(-x)$, and thus, as we already have $f(0) = 0$: $$\forall x \in \mathbb{R},\quad f(x) = -f(-x) \tag{2}$$ Using $(2)$, we get: $$P(x, -x):\quad 0 = -f(x)^2 + f(x^2)$$ Hence: $$\forall x \in \mathbb{R},\quad f(x^2) = f(x)^2 \tag{3}$$ But thanks to the post $f(x+1)=f(x)+1$ and $f(x^2)=f(x)^2$ we can conclude that this would imply $f = \operatorname{id}_\mathbb{R}$ since it satisfies $(1)$ and $(3)$.
Finally, $0$ and $\operatorname{id}_\mathbb{R}$ are solutions, and as such we have found all the solutions of OP's equation.