Para responder a la pregunta, necesitamos saber algo sobre la factorización de $x^n-1$. Comencemos escribiendo $n=2^\ell m$ con $m$ impar. Entonces $$ (x^n-1)=(x^m+1)^{2^\ell}, $$ y el problema se reduce al caso de un exponente impar.
He dado la respuesta a eso de manera diferente aquí, y la respuesta es que el grado de los factores de $x^m+1$ están en correspondencia 1-1 con los tamaños de los coset cíclicos $2$ módulo $m$. El coset ($2$-) cíclico módulo $m$ de un número entero $a$ consiste en las clases residuales de $2^ja,j=0,1,\ldots$. Si $g$ es una raíz primitiva de la unidad de orden $m$, entonces el coset cíclico $[a]$ de $a$ corresponde al factor $$ f_a(x)=\prod_{j\in [a]}(x-g^j), $$ que claramente es un factor de $x^m-1$ sobre $\mathbb{F}_2[g]$, pero en realidad tiene coeficientes en $\mathbb{F}_2$, porque sus ceros son todos conjugados bajo potencias del automorfismo de Frobenius.
Como ejemplo, consideremos $n=31$. Aquí hay un único coset cíclico de tamaño $1$ concretamente $[0]$ correspondiente al factor obvio $x+1$. Los otros cosets cíclicos tienen todos 5 elementos, por lo que $x^{31}+1$ es un producto de un factor lineal y seis polinomios quínticos irreducibles. Por lo tanto, todos sus factores tienen grados congruentes con cero o uno módulo 5, y todos esos valores ($\le 31$) ocurren.
No sé cómo Matlab lo maneja. Los ingenieros tienen la costumbre de acortar códigos cíclicos, porque puedes usar el polinomio generador incluso si acortas el código al final. Obviamente destruirás la ciclicidad si haces eso. De todos modos, tienes razón. Los códigos cíclicos no existen para todas las combinaciones de $n$ y $k$.