Whilst I do not, in any way, shape or form condone child abuse - be it verbal, emotional or physical (like you, OP, I also had a verbally/emotionally/physically abusive childhood) - it is possible that your son might have fabricated. The choice between playing cards with her, or going to the shop... which led to the assault, doesn't ring true with me, somehow. I've had two 10 year olds, who are sulky and have twisted things to make themselves the victim if they're forced to do something they don't want to do (currently, I have a 12 year old upstairs sulking because I asked him to get dressed so that we can meet family for a pre-arranged lunch...!). If I were you, I'd subtly quiz your son as to what precisely happened, before you go leaping to no-contact conclusions.
Children lie.
It's a fact of life.
So do adults, of course, but children push their boundaries to find out how acceptable their behaviour is. Perhaps your mother told him off, and he's exaggerated it into a slap. Maybe your mother hit him, and he's telling the truth. Until you communicate with both of them, separately, and compare their statements... you're not going to know.
My son has limited contact with my mother because of the way she treated me throughout my childhood... and because, when he was 5, she grabbed him by the wrist and dug her nails into his skin deliberately. Now that he's older, he wants to spend time with her without me present... but I'm a nervous wreck when he does, because I remember, only too clearly, my own childhood (she broke my nose when I was 7 months old). Like your mother, mine is doing her utmost to be a great grandmother, but... sometimes... they revert.
My advice, OP is to talk with your son and with your mother, compare what they've said, and trust your own instincts. You know how you were raised... you remember/know what she was like... you know that she's trying to be a better grandmother than she was a mother (just like mine, actually). But don't instinctively believe your son. Give your mother the benefit of the doubt. Children lie to see how far they can push things. Perhaps he's picked up, or knows the situation between you and your mother and is reacting to that. Maybe he thinks that if he tells you she hit him, you won't leave him there again (and, seriously, I don't know a child today who wants to play cards with their Granny... including my own!).
Just trust your own instinct.