In my experience, you talking to the MIL isn't likely to help - it needs to come from your husband. She needs to know that it's not about choosing sides, your husband would like both of you, but when it comes down to it he will choose YOU if she forces him to choose.
When we have gone through this, having the DIL and MIL talk things over just got bogged down in details over who did what when, etc., etc. The main issue for my MIL is control, and in the past if things came out of my mouth then it meant I was controlling the situation. No matter how many times I said "we", she didn't take it as my husband and I, she took it as me saying it, and thought if she talked to my husband separately he would usually see things her way. That's why hubby has to be the "bad guy" - not to mention that she loves him and will forgive him, not so with you.
My hubby is what I think of as a "typical guy", no patience for feelings and not reading into all the intricacies of communication. What his mom says will usually sound fine to him, until he tells me and we discuss it in more detail. Then when he would call his mom with a change of heart, she interpreted it as I MADE him change his mind. I have had to train him to say, "I don't know, we will talk it over and get back with you." I have also had to be careful myself to lead him through the thought process so he feels like he has come to a conclusion WITH me, rather than me just reacting instantly with my opinion. This has been better for our relationship (I look less critical of his mom), and if he has ownership of the thoughts he will express them with more conviction to the MIL.
It has helped greatly now that we have a child, because my husband is pretty good about coming down on the side of what is best for him. This has caused him to go against his mom on a couple occasions, which has helped her realize that there are limits. Practice in ways for my husband to see that I am rational and reasonable and that his mom doesn't always consider the grandkids' needs (rather her own!), has really helped, although things are still far from perfect.
It also helps for me to remember that kids need their grandparents for that unconditional love that grandparents give in a different way from parents. And, you can't begrudge the grandparents the great happiness they get from being with the grandkids. As long as the grandkids aren't going to be physically hurt (we have a rule that our son does NOT ride in the car with MIL because she has a bad driving record and does not always follow car seat laws), we try to find a compromise that meets everyone's needs in some way. Example - she would love to have him spend the night, but we won't let her drive with him, and she doesn't have a house to take him to, so she can come to stay with us and I will go to a friend's house for some adult time while hubby stays there or is at work.
With regard to your picture situation, I can't believe the grandparents don't remember a time when kids were terrified of Santa! We aren't even going to attempt that one this year with a 28-month-old. He is deathly afraid of anything new that moves or talks. Stuffed toys that jump or bark, merry-go-rounds, Santa figures in the store that talk to you - No. You probably shouldn't have even gone if you had any idea your son would be scared. I would have explained ahead of time that you were sure he wouldn't do it, and that you didn't want to create a bad experience for him that would make it be even more years before they could have their picture. That would at least put it off for a year, and you could reevaluate at that time. This would have shown them that you agreed with their desire (harmless), but that you were worried about his happiness.
Hope this helps and I didn't ramble too much. Good luck, just try to take the bad feelings and fear out of it and stay calm as you decide what to do. And of course, get hubby's cooperation!