Translation:Are you going home or are you already at home?
These are idioms, and Hause means home, while Haus means house.
Zu Hause means at home; nach Hause means towards home, moving towards home.
There's no difference between "nach Hause" and the adverb "heim". But be careful, "Heim" as a noun tends to (but doesn't have to) refer to an old people's home, a children's home or even an asylum rather than someone's home.
"Ich gehe heim" = "Ich gehe nach Hause" - "I'm going home"
"Er ist in einem (or just "im" instead of "in einem") Heim aufgewachsen" - "He grew up in a children's home"
"Ich bin zuhause/zu Hause" - "I'm at home". This could also be "Ich bin daheim", but my understanding is that this is mainly used in the south (southern Germany, Austria and Switzerland).
"Das ist mein Zuhause" - ("Das ist mein Heim", if you must use it) = "this is my home" ("Heimat", if you're talking about a region, state, country, etc., and there are other options which I just can't think of right now).