Opa Tiago, tudo beleza?
Então cara, uma vez definido a constraint PRIMARY KEY para o ID os valores NULL / 0 / DEFAULT são tratados por concorrência, assim como no caso do AUTO_INCREMENT.
Entretanto, a clausula disposta como Not Null, permite a inserção de valores como: NULL / 0 / DEFAULT, sendo que o banco vai trata-las para obedecer a Identity ou acusar possíveis erros.
Para te dar um norte, a clausula com o NOT NULL, é considerada um boa prática em SQL, sendo que trás melhor entendimento ao leitor do script, não permite a divergência de valores inseridos e o consumo/custo desta definição não é impactante no banco de dados.
Conclusão: Não é necessário o Not Null, mas é uma boa prática.