You are right in everything that you have said. Granny already carries immunity to the varicella‑zoster virus (the virus that causes both chickenpox and shingles) so she cannot catch chickenpox again nor can she catch shingles from someone else, because shingles is a reactivation of the virus already in her own body — not something you catch from others.
A person with shingles can only spread the virus if someone touches the fluid from the blisters, and even then, the only thing they could cause is chickenpox in someone who has never had it.
It’s generally safe for your son to visit her, as long as, his rash is covered with clothing or a dressing, there is no direct contact with the blisters (so no licking) and he washes his hands regularly.
Since the grandmother has had chickenpox, she is not at risk but if she is adamant she is, I'm afraid I would be using her rationale against her. If she believes that although she has already had chickenpox, she can catch shingles from your son, then surely that means that the rest of your family could have shingles (you, Dad, siblings, as they live with your son) and not yet know it (and on that basis), none can go to hers at Christmas to protect her?
Following her rationale, If someone is exposed to shingles and gets chickenpox, they won’t be contagious immediately and they willy become contagious roughly 9–20 days after exposure, depending on when their rash begins.
Unless of course she wants to review the medical guidance which says it is fine for the whole family to visit as they have all had chickenpox including her?
However there is one caveat to this. If the granny has a severely weakened immune system (for example, from chemotherapy, high‑dose steroids, or certain illnesses), it’s always wise to check with her doctor — not because she could “catch” shingles, but because her immune system may be more vulnerable in general.