She doesn't have to be gracious, but it's probably easiest. And it's not just women that have to be gracious. I suspect her DH would be too, as would all male and female members of the family subject to his weirdness.
You don't have to be passive, just not pick a fight.
Of course, she could tackle it head on 'please don't tell me what I can and can't feed my children. I will give them ketchup if I want to' Which is fair and logical. But realistically what will be gained? He's hardly going to acquiesce and change his ways. More likely there will be frosty relations or even a full argument and ongoing drama.
And with the coat, it's odd to buy something someone doesn't want, but again, what's to be gained in not accepting and putting it aside?
Isn't this just part of family dynamics? I know that we were all gracious with old grandma who was odd, and sometimes rude. Her opinions were bonkers, she was particularly pokey at me and other women, but I saw her 8 times a year. I got on with it. The one time I did argue back it was awful, and toxic, and she then died (obviously this isn't linked and couldn't be known) I just don't think it's worth it. Let him have his opinions on ketchup and the Barbour, and then get on with living your own life your own way.
My life is much less stress free now that I've stopped worrying about stuff that I can't change and doesn't matter long term.