"My dream is not a dream."
Translation:Mein Traum ist kein Traum.
Das ist richtig! Kein negates nouns preceded by the indefinite article, or nouns preceded by no article (but can be preceded by adjectives). Nicht negates nouns preceded by the definite article or by possessive adjectives. Nicht also negates anything that isn't a noun (verbs, adjectives, other parts of the sentence), and can also be used to negate a whole phrase.
I know I'm five years late, but for anyone else with the same question: "X is Y" is what is known as a predicate. In German, this is an exception to the usual pattern of "nominative verb accusative", but is instead "nominative is nominative". So: "Rover sees a dog" = "Rover sieht einen Hund" "Rover is a dog" = "Rover ist ein Hund"
Hope this is helpful to someone. It took me ages to learn it and I still forget sometimes.
Keinen would imply that the second Traum is an object, which means an action is being performed on it. It isn't the case here. The sentence is just stating that the subject IS NOT a different subject (Mein Traum ist kein Traum). It's a statement about the state of the subject (being) and not about an action being performed. So, the second Traum too is a subject.
I know you asked this question some four years back but I hope this helps you to understand better.