Shygirl, I get the impression that you are stressed and tired, even without this visit from MIL.
What do you mean when you say you and DH work opposite shifts? Is it like, you work 9am-5pm, and he works 6pm-2am type thing? So you get up, go to work, come home, send hubby off to work, feed and bathe toddler and wrestle him into bed, do some chores around the house, go to bed exhausted and then get up and do it all over again the next day? Hubby is home during the day looking after toddler, works all evening, gets home in the wee hours of the morning, grabs a few hours sleep before he gets up and does it all over again? If so, I can understand your frustration and lack of enthusiasm for having a long term houseguest.
Do you have a friend who could watch your son for a few hours so you could go shopping/run errands alone once a week? Is there some reason why MIL can't watch your son while you do the groceries. or even take him to the park for a picnic lunch and play so you could have some quiet time on the weekend to get errands done or just relax for an hour or so?
Have either of you asked MIL what she would like to do during her stay? Is there anything special she'd like to do or see while she's with you? I'm in Australia and if I were visiting the USA there's so much I'd like to see and do, and you guys have the cheapest, prettiest quiltig fabrics around. I'd be wanting to hit the stores, too, but wouldn't necessarily want you to accompany me - just point me in the general direction and let me loose! So, maybe ask MIL what her plans are. You don't have to plan every minute of her stay with you. Some initiative has to come from DH and MIL, too.