The above is not a valid DAL query. It is literally equivalent to:
Instead, you must use Python logical operators, as specified in the DAL documentation:
db(db.mytable.PostDate != None)
The presence of the Field object in the above expression overrides the usual behavior of the "!=" operator, returning a DAL Query object rather than a Python boolean value. In your original query, there is no overriding of "is not", so you simply get back a boolean True value (as the Field object itself is not None).
Anthony