I once heard from a German tutor that there's a linguistic reason for why we use "zu Hause" for being in the house and "nach Hause" for going in the house. He said it has to do with old German but I don't clearly remember his reasoning.
1 Answer
"Hause" is the (old) Dativ of "Haus". So "nach Hause" is:
Ich gehe nach (dem) Hause.
which is an old-fashioned way of saying to go home (verbatim: I go to the home).
zu Hause
is similar and comparable to phrases like "zu Gast", which also use the Dativ (although without the "-e", which fell out of fashion):
Ich bin zu Gast.
That the ending "-e" is a Dativ you see in phrases, where it survived:
zu Tage treten
zu Buche stehen
zu Markte tragen
and so on, there are several more.