The proof never uses $\deg 0.\,$ Below is an abstraction of the argument that may help clarify this, including a view as a prototypical least counterexample (minimal criminal) descent.
Say $\,f\in \bar J := J\backslash 0\,$ is $ $ good $ $ if $\,f\,$ divides every element of $\,\bar J\,$ (else say $\,f\,$ is $ $ bad, $ $ i.e. not good).
Division Algorithm $\Rightarrow$ bad $f$ are not minimal degree (by constructing a smaller degree $\,f'\in \bar J,\,$ i.e. the remainder $\,f' := g\bmod f,\,$ using $\,f\,$ bad $\,\Rightarrow\,f\nmid g\,$ for some $\,g\in\bar J).$
So a min degree $\,f\in \bar J$ must be good (if it were bad the above descent would yield a smaller deg $\,f'\in J,\,$ contra minimality). Note min degree $f$ exist by $\Bbb N$ is well-ordered (and $\bar J$ not empty).
Summary $ $ By $\Bbb N\,$ well-ordered, minimal degree elements exist; furthermore, by Euclidean remainder (mod) descent, bad elements are not minimal, thus a minimal element is good.
This method works generally - requiring only a descent on bads using a well-ordered set $N$ of "sizes", i.e. every nonempty subset of $N$ has a least element. $\,N = \Bbb N\,$ in the OP.
We can view the proof as a descent on bads (counterexamples), i.e. if all elements are bad, then choose $f\,$ to be a least degree bad (minimal criminal). As above, the division yields a smaller (degree) bad, contra minimality. So not all elements are bad, therefore a good element exists.
Or, equivalently, well-ordering implies that if we iterate our descent process to generate a descending chain of bads then the chain is finite, necessarily terminating at a good element, since, equivalently, well-ordering means there are no infinite descending chains.
This type of induction (descent) is ubiquitous in mathematics so it is well-worth the effort to master it early (in simple instances like this, since it will be more difficult to do so in more complex cases).
Remark $ $ The proof generalizes to any Euclidean domain, i.e. any domain enjoying division with smaller remainder. The key idea is that ideals are closed under remainder (mod), therefore the "least" $\,d\in I\,$ must divide every $\,i\in I,\,$ else $\,0\neq i\ {\rm mod}\ d\,$ is in $\,I\,$ and smaller than $\,d,\,$ contra minimality of $\,d.\,$ The descent in this proof can be interpreted constructively as computing a generator of $\,I\,$ by computing the gcd of its elements (by taking repeated remainders).
This method extends to PIDs: (Dedekind-Hasse criterion)
a domain $\rm\,D\,$ is a PID iff given $\rm\:0\neq a, b \in D,\:$
either $\rm\:a\:|\:b\:$ or else some D-linear combination $\rm\:a\,d+b\,c\:$ is "smaller" than $\rm\,a.\,$ Every PID admits such a size measure, viz. the number of prime factors (cf. prior link).