Non-existent attributes stored as null are visually represented in the UX as <Null> (attribute table, attribute pane, etc.) There are multiple reasons I prefer displaying records with legitimately no attribute as blanks, instead of nulls, but the primary reason is for the ability to scan/read attribute interfaces more quickly: the blank cells are intuitively dismissed and prominence is given to the populated attribute cells.
Consider programmatically using a more subtle mid-tone gray for the text font of these <Null> cells.
Concept sample image of null values in the last column on the right (this example happens to be while using 'dark mode'):