Young Link has the Ocarina of Time in Majora's Mask, which is something of a plot hole. He returned the Ocarina to Zelda before he was sent into the past, so he could not have had it in his possession after OOT ends. To me, there is only one explanation for this. After the end of Ocarina of Time, Link goes to Zelda, tells her that he kicked Ganondork's ass, and then Zelda rewards him by giving him the Ocarina of Time. After that, he tames Epona as a kid (another thing he didn't do in the original timeline) and rides her to Termina. And, in this new timeline, Ganondorf must be sealed away from the moment he was born, or else Link would have to deal with Ganondorf all over again as a kid, and as you've seen, that could get messy.
So, this is how I think it happened:
Ganondorf vanished from existance, because being banished in the future banished him in the past as well (temporarily, of course). I know that sounds dumb, but if Ganondorf still existed in the past, then Young Link would have to deal with him all over again.
Link was sent back in time to a point when he had already met Zelda. Otherwise, he'd have a hell of a lot of trouble explaining everything to her and convincing her that he is the Hero of Time and whatnot.
Zelda remembers Ganondorf and meeting Link, even though Ganondorf has vanished. Once again, it sounds dumb, but otherwise the whole thing would get really messy.
To reward Link for defeating Ganondorf, Zelda gives Link the Ocarina of Time, and afterwards Link tames Epona and rides to Termina.
After that, several centuries pass, and the events of Twilight Princess occur. Meanwhile, in the timeline where Adult Zelda sent Link back in time, there is obviously no Link in existance, so when Ganon returns, there is no Link to stop him, and the goddesses flood Hyrule, leading to The Wind Waker.
And that brings us to a close. The only thing left to do is to beg you all not to start up some kind of timeline flamewar in the reviews section.
