On the FAQ we have:
CHAR() is best when storing strings that are usually the
same length. VARCHAR() is best when storing variable-length strings,
but you want to limit how long a string can be. TEXT is for strings
of unlimited length, maximum 1 gigabyte. BYTEA is for storing
binary data, particularly values that include NULL bytes.
How much space does "NULL" takes on a varchar.
I have a table where possibly less than 40% of the records will have a
value. I am wondering if I should go with a second table for those that
have the values or if NULL is small enough that it won't be much an
overhead for the possibly 60% instances when the column would be empty.