You seem rather confused about the topic. What magic were you expecting to happen if something doesn't have a value?
The point of Maybe is it lets you (a) specify exactly where things can lack a value (as, for example, when a database column can produce a NULL instead of a value), and (b) explicitly handle those instead of hoping the program somehow reads your mind to figure out how to deal with it or feeds you some unexpected 'nil' or whatever.
Consider in this case that the database does not care if a column doesn't happen to have any NULLs, it cares only that the column was not declared NOT NULL and therefore *can* contain a NULL. Which is the same condition where you use a Maybe someType in Haskell instead of simply someType.
In particular, if you were expecting a database NULL to turn into the empty string or "NULL" or some other such in-band value, how were you expecting to distinguish the case where the database row actually contains that string? That's why databases have NULL to begin with: "no value" distinct from any possible actual value. If you do not want this, declare the column NOT NULL in the database, don't expect the client program to do magic for you.