How does DYNAMIC Row format handle NULL storage MYSQL 5.7?
The second bullet point 'The variable-length part of the record header contains a bit vector for indicating NULL columns'.

So when a row has a field that is NULL, the bit in the bit vector of the header is set.

AFAIK this is the same for DYNAMIC/COMPRESSED that really only changed the handling of variable length fields.