Suppose a curve with self-intersections can be described by $\phi(x,y)=0$. Suppose the intersections are $T_i$, $i=1,2,...$ and the gradient $\nabla \phi$ at those intersections are well defined. Then is it true that $\nabla\phi(T_i)=0$ for all $i$? In other words, are the gradients at those intersections all zero?
If we agree that $\phi$ is continuously differentiable (so $\nabla \phi(x,y)$ is a continuous function of $x$ and $y$), then yes, this must be true.
The reason is that, if $\nabla \phi(x_0, y_0) \neq 0$ for some $(x_0, y_0)$, then the implicit function theorem guarantees that (locally) we can write $y$ as a function of $x$ or $x$ as a function of $y$. However, at a self-intersection $T_i$, our curve fails the horizontal and vertical line tests, so we cannot express $x$ as a function of $y$ or $y$ as a function of $x$.
A different argument
(For the case where two branches of the curve have distinct tangents at the intersection point)
Since $\phi$'s values do not change along the curve, we know that if $\phi$ is continuously differentiable then any of its directional derivatives along the curve is $0$.
At an intersection point, we would have a null directional derivative along two linearly independent directions. Having projection $0$ along two linearly independent vectors, we know the gradient is $0$.