Yes, they do — it's cool you've noticed! They're both related to the word у́тро 'morning' with a prefix за-. (In the past, в used to be pronounced like [w], so ау [au] got shortened to [aw], and later all the [w] sounds became [v] and it become [av], further devoicing to [af] because it's followed by voiceless [t].)
«За́втра» 'tomorrow' is something that goes after the morning (note the English 'tomorrow' is also composed after to and morrow, and morrow used to mean morning originally).
«За́втрак» 'breakfast' is the morning meal. It has a suffix -к which you'll be seeing a lot in Russian, it has a variety of different meanings.
I generally fix breakfast six days a week (I am an early riser and my wife is slow in the mornings). I always cook cereal (often two kinds which I mix together), often fry sausage or a little bacon (mostly for flavoring the meal), almost always fry or scramble eggs or (less often) make individual omelets with various fillings. So, breakfast in my apartment almost always involves cooking something. I cannot remember the last time there was nothing cooked for a breakfast.
Because гото́вишь is used not just for repeated actions but also for actions in progress.
Also, пригото́вишь doesn't have a present tense, so it wouldn't correspond to the English sentence. «Ты пригото́вишь за́втрак?» is a sentence about the future, "Will you cook breakfast?".
You'd use the present tense too. «Ты гото́вишь за́втрак?» can refer either to an action at the moment of speaking, or to a habitual action.
You can add 'usually' (обы́чно) or 'now' (сейча́с) to be more precise.
За́втрак is the accusative case. For за́втрак (and other masculine nouns that don't signify a living being), the accusative form is the same as the nominative form.