I like to be shomer Shabbos (Sabbath observant) but my son will not eat anything that I have made for Shabbos. He is nearly four years old. I have been cooking for him on Shabbos as otherwise he would not eat and I feel bad for breaking Shabbos like this. Can you please advise me what I should do.
Aren't children wonderful? Firstly and most importantly, you should not compromise on your mitzvah observance. As a parent myself, I understand the importance of listening to one's children and trying to accommodate them. However, this should not be at the expense of breaking Shabbat.
It sounds like your son doesn't like the traditional Shabbat foods. So find food your son likes and give it to him. Doesn't he like "French fries?" How about macaroni and cheese? Pizza? These can be cooked before Shabbat and kept warm. They can even be rewarmed on Shabbat under certain conditions (for the permitted method, write back or consult your local orthodox rabbi). These aren't traditional "Shabbat" foods, but it doesn't matter. The main thing is that he eat and that you observe Shabbat.
Your situation brings to mind a story told about the famous Talmudic giant, Rabbi Yosef Rozen, known as the Ragotchover. There was once a woman whose newborn baby would not nurse on Shabbat. This was endangering the baby's life, as once a week, from Friday afternoon before sunset until Saturday night after dark, the newborn refused to eat. He was losing precious weight at a time when he needed to be gaining. All the doctors were stumped. Finally, the mother brought the baby to the Ragotchover for a blessing. Instead, the Ragotchover told the mother that on Shabbat she should not change into her special Shabbat clothing; rather, she should remain in her regular weekday clothing. That Friday night the mother did as told: Instead of Shabbat clothing, she wore her weekday garb, and the problem was solved! The baby nursed!
To explain how he solved this mystery, the Ragotchover cited the Tosefot commentary to the Talmud. The Talmud (Bava Kama 37a) says that an ox which establishes a pattern to gore on Shabbat is considered "wild" only regarding Shabbat, but that during the week it retains its "tame" status. Tosefot gives the reason: The different clothing people wear on Shabbat causes the ox to fail to recognize them. From this, explained the Ragotchover, we see that low-level intelligences recognize differences in clothing and can exhibit changing behavioral patterns based on this recognition. The newborn didn't nurse because he didn't recognize his mother when she wore her Shabbat clothing.