christmascarol, where is your FIL in this? I'm curious: you've told your MIL, your DH has told her, your SIL, you said, was supportive. What does your FIL say? I absolutely agree that this is not forgetfulness, there's something else going on in her head, but I'm just wondering if there's any mileage in calling (or preferably getting your DH to call) before the next visit, and talking to him about it. 'Can you convince Mum that christmascarol absolutely must not have anything with chocolate in it? You know she doesn't hear it when we say it, so will you please? We really find it hugely offensive when she keeps ignoring us and deliberately doing something so dangerous.' Or has he already been involved in some way?
In some ways, nice for him, he gets the chocolate back, but if he has any sensitivity on his own account, this whole scenario must be mortifying.
I'm with those who say, next time she does it - and I have no confidence that she won't - get up, put on your coat, and leave. No discussion, just out the door. Time after, get your DH to call ahead and ask his mother directly: 'what have you got for christmascarol?' If it's chocolate - if any part of it is chocolate, don't go. If she tells him it's socks, and you unwrap chocolate, then even if there are socks as well, coats on, head for the door.
I admit that it's easy to say when it's not my family!