Ergh - guilt tripper!!! Sorry that you have to deal with that. :-(
Possibly... she's just "talking baby talk" and exaggerating everything for him, like a lot of adults do with kids [not just "a big ball," but "a biiiiiig baaaallllll"].
Possibly she's trying to make up for something -- like, maybe she felt like she wasn't "fun enough" or "nice enough" with her own kids, so she's wanting to be "fun Grandma" for your kids. Maybe she wants to be more fun than his other grandma, or anybody else, so that your son will "like her most."
It sounds like "you can't win for losing," so I'd suggest that if at all possible, just don't play her game. Next time she says, "You're so mean for...." just nod your head and say sardonically but with a smile, "Yep, I am. Such a mean mommy!" Or, "Yes, I know it's freezing, that's why I dressed him in shorts" [when he's dressed in pants and long sleeves]. When she says, "I'm sure he just wants candy," you can nod and agree (it *is* true, after all -- who wouldn't like to eat candy instead of vegetables??), and say, "I'm sure he just wants candy -- in fact, I'd like to eat nothing but candy, too!" and smile.
Perhaps she just wants to feel important, and telling you that the baby should (not) have socks on, that makes her feel better. Not terribly healthy, I think; but perhaps that is her drive. If that's the case, then perhaps you can ask her for advice, so she can feel important without always disagreeing with you. Before you get to her house next time, you can call her and ask her opinion as to whether it's cold enough for socks. Then maybe she'll lay off of you.