Editado para mayor claridad
De acuerdo con la Especificación SQL, una clave principal no puede contener NULL. Esto significa que decorar una columna con "NOT NULL PRIMARY KEY" o simplemente "PRIMARY KEY" debería hacer lo mismo. Pero está confiando en que el motor SQL en cuestión sigue correctamente el estándar SQL. Como ejemplo, debido a un error inicial, SQL Lite no implementa correctamente el estándar y permite valores nulos en claves primarias no enteras (consulte sqlite.org/lang_createtable.html). Eso significaría para (al menos) SQLLite que las dos declaraciones hacen dos cosas diferentes.
Como "NOT NULL PRIMARY KEY" indica claramente la intención y continúa imponiendo valores no nulos incluso si se elimina la clave principal, esa debería ser la sintaxis preferida.