So, if is incorrect to say I don't have no money, why some people are still saying it?
Most of the people who say
I don't have no money and
I ain't got no money do so simply because it is grammatically correct in their dialects. There is no important difference between the two sentences: They simply represent two different nonstandard grammars, and it may well be that there are dialects where both statements would be grammatical.[1])
Some of the people who say
I don't have no money and
I ain't got no money have adopted that way of speaking as a form of slang. Fans of rap music, for example, may adopt hip-hop slang, in which negative concordance (also known as the double negative) is acceptable.
Those are the most common reasons, and probably explain the speech of the people you heard. Note, however, there are at least two other possibilities.
Some people who say
I don't have no money and
I ain't got no money do not have English as a mother tongue and learned English not in school, but directly from working-class speakers of a nonstandard grammar.
Finally, I would expect that some people who learned English as a second language in school would use negative concordance from time to time because it is used in their mother tongue and then carries over into their English.
Note:
[1] In
The Red Green Show, the character named Red Green refers to one recurring segment of the show as
If it ain't broke, you're not trying. So many people expect nonstandard grammar to always use
ain't that on their Web sites they report that Red says
If it ain't broke, you ain't trying, but he doesn't. Now, Red Green is a fictional character, but, as I indicated above, I would not be surprised at all if some people's nonstandard grammar accepts both the
ain't negation and the
not negation, sometimes even in the same compound sentence.