Unlike UNIQUE or CHECK, NOT NULL cannot be used standalone at the table level in a standard way Example: CREATE TABLE t (a int, NOT NULL a); fails. It only works as an "out-of-line" constraint in very specific inheritance scenarios.
As of v18 it works. v17 and earlier do not document it.