Best Answer - Chosen by the Asker
The first sentence is correct.
"John bought a dress herself!" is a little strange. John is usually a man's name, so would be used with "himself".
But even if John is the name of a woman in this sentence, it might be incorrect depending on what you are trying to say. If you are emphasizing that the woman actually performed the act of purchasing the dress, then the sentence would be correct. If you are trying to say that the dress purchased by John was in fact purchased for John to use, you should say "John bought a dress for herself!"