Trigger not setting DATETIME correctly
You are testing for NULL, yet you are not letting it be NULL -- either by having a DEFAULT or NOT NULL.

So change to

due DATETIME NULL,


And, for less confusion between "timestamps" and "datetimes", use

SET NEW.due = COALESCE(NEW.due, NOW() + INTERVAL 7 DAY);