There is a difference between an empty string ('') and a null value in the database. If you do a get on those rows being saved, you’ll find that what is stored are empty strings.
If you try to do something like MyModel.objects.create(title=None), you will get the expected error.
If you specify default=None in your title field, you will also get the expected error.
But by default, it appears that MyModel.objects.create() will set the undefined fields to '', and so no error is generated.