I don’t like being called Ma'am, it makes me cringe. I do like being treated with respect and kindness. 
Well, here's a problem: when you are working as a salesperson/cashier, unless you actually know the name of the person you are serving, there's got to be a generic name/title that can be used when referring to the person is required. In these cases, we're generally reduced to referring to the person by their gender, as in "Ma'am, you forgot your keys."
I find "Miss" condescending. And there's no way I'm going to refer to anyone as "Bee-yatch."
Sure, some people are going to find "ma'am" irritating. But as a salesperson/cashier/server, I really don't have much choice.
A genuine smile works wonders, of course.