You still didn't answer as to how the data gets into B1.
Maybe B1 is *not* empty.
If the data is keyed in, could there mistakenly be <spaces> entered?
(Did you try Bob's suggested formula!)
If the data is the return of a formula, could the formula be constructed
wrong, so that it returns " " instead of ""?
(Did you try Bob's suggested formula!)
If the data is imported, could there be the possibility that there are
invisible characters [CHAR(160)]?
Try this in another cell:
=Code(B1)
If you get the #VALUE error, you know B1 is either truly empty or it
contains a zero length string ("").
If a number is returned, you know that the cell contains that Char()
character.