Simple explanation: Naddo is used for past tense No, and Nac ydw is used for No, I am/do/have not.
Time to open a can of worms!*
Welsh doesn't have a specific word for yes or no, unfortunately, instead choosing to repeat the verb in most cases back to you (well, there's a generic ie and na, but I'm not sure under what circumstances you're actually allowed to use though). I'll go through the two words separately:
This is the negative form of ydw, meaning "Yes, I am". This one's a little trickier, since it comes from the word bod which is irregular, but if you see the following conversation, you might understand a bit better:
Jack: Wyt ti eisiau mynd i'r parc heddiw, Bill?
Jack is asking Bill if he wants to go to the park today. He uses the verb Bod (Wyt ti). To answer yes to this, Bill replies affirmatively with the same verb, which is Ydw (since it's an irregular verb).
When someone asks you something in the past tense, you always just answer with Do/Naddo. I know less about this, so I'd love it if someone could expand further on this for me (or correct any mistakes I may have made above, I'm still learning too!).
*(To give you an idea of the size of this can of worms, I just counted a list of grammatical structures they expect us to know for Intermediate level Welsh night classes - 54 words for yes and no in it!)
Do/naddo are always used with the simple past tense:
- Est ti i'r clwb neithiwr? Do.
- Wnaeth Dave brynu beic newydd ddoe? Naddo.
And informally with the perfect, too:
- Ydy e wedi prynu beic newydd eto? Nac ydy would be 'standard', but
- Ydy e wedi prynu beic newydd eto? Naddo is also quite common.
Where does naddo come from in this context? Most words for yes/no I can understand why they're there, but naddo I'm just having to memorise.
naddo is just na + do, where na is a negation (so far, so obvious...), with some connection to Old Irish nathó.
According to the Geiriadur Prifysgol Cymru, do comes from the Old Irish tó. That's clear, then!