Yes, yes and yes. When the filter for a given property is set to a value, but an specific item has a null for that property, the correct thing is to match the item (since it is unknown, it is wrong to assume the value doesn't match!).
I would even prefer two result groups: matching filters and "maybe matching filters". But most faceted search engines just filter out items when properties may or may not match a property.
I would even prefer two result groups: matching filters and "maybe matching filters". But most faceted search engines just filter out items when properties may or may not match a property.