The proof is not correct as stated, precisely for the reason you point out: if $n=0$, then it is false that $n\times \omega\sim\omega$. So it's a good thing you are put off.
Rather, from $n\times\omega \cup \{n\}\times\omega$, the argument should then say something like:
$\{n\}\times\omega\sim\omega$ holds; and since $n\in K$, either $n=0$ and $n\times\omega=\emptyset$, or else $n\times\omega\sim\omega$. In either case, we have $\sigma(n)\times\omega\sim\omega$, so $\sigma(n)\in K$.
(or else the inductive step could try to handle the $\sigma(n)=1$ case as a "special case").
It's okay to begin at $0$ because the set $K$ "takes care" of the $n=0$ case explicitly. You can do this in all sorts of cases; for example, if you wanted to prove that every natural number greater than $99$ needs three or more digits to write in base $10$, you could let $K$ be $K = \{n\in\omega\mid (n\leq 99)\lor (n\text{ requires three or more digits to write in base }10)\}$ and use induction to show that $K=\omega$.
However, when one does this, it is very often the case that the first case in which the original statement is true has to be dealt with independently or directly, which is what happens in the argument you quote. In the one I just made up, you would have to consider the case $\sigma(n)=100$ separately from all others:
For $n=0$ or $\sigma(n)\lt 99$ you have $\sigma(n)\in K$ by definition;
for $\sigma(n)\gt 100$ you can use the fact that $\sigma(n)$ requires either the same number of digits of $n$ or one more, and since $n\in K$, and $\neg(n\leq 99)$, then $n$ requires at least $3$ digits, hence so does $\sigma(n)$; so $\sigma(n)\in K$.
But if $\sigma(n)=100$, then the fact that $n\in K$ doesn't help you: you actually have to stare at $100$ and see that it takes three digits to conclude $\sigma(n)\in K$.
Essentially, you get all the "false cases" for free, so that your "true" base, the first value for which the statement holds, usually needs to be taken care of directly.