If you can scrape together $5-$10, and have access to an oven (not knowing if you're homeless) you can have a pretty killer birthday.
((Toys For Tots takes care of xmas... so no worries there (and then when you're on your feet again, just make sure to 'pay it forward' for another family).))
For birthdays... there are other groups which can help get a present or three for your son. You can add to those, of course, with whatever money is left over from your birthday celebration.
Birthday celebration:
Spend $5 on cake mix and powdered sugar (make your own frosting, it's eeeeeeeasy and costs less than a dollar). Make cupcakes instead of a big cake, and either plan on baking that morning if he likes to help, or start out his day by blowing out the first candle and having a 'cupcake breakfast' (cupcake WITH every meal on his bday... also helps spread out the sugar rush, instead of one giant piece of cake). Use your other $5 on buss passes (assuming no cars or no gas money, if you have either you're even more set) and GET OUT THERE!!! Fly kites, go for a hike, play in a fountain, go to the 'big' library, draw on the sidewalk with chalk, roll down a hill (or go ice blocking), blow bubbles, go skating,
In your profile is says your crafty. Have face paint? If not, have Acryllic? (not for faces, but it's great for arms for "tattoos". But a sharpie would work as well). Is your son young enough for a Birthday Crown? (felt, or paper).
Have any money left over from the $5-10? Hotwheels are 88 cents. Paddle balls are a buck. Glowsticks in empty peanut butter containers (or any plastic container or ball) makes for a GREAT game of 'soccer' at night, and they're dirt cheap right now since it's halloween.
There are TONS of really fun, very free or super cheap things that you can do to make a birthday an absolute BLAST. You just have to get creative about it.
And if you're not homeless, you've got even MORE options available to you. Like "camping" in the living room with sleeping bags, eating popcorn (make it on your stove for less than $1 for 5+ people), staying up late watching a movie. Have a sleepover and make pancakes ($2 to feed everyone) in the morning.
You DON'T tell your kids there won't be presents or parties or special days. You make them happen. On a shoestring, but they won't care. In fact, our 'broke bdays' have been some of my son's favorite days. Being made to feel special can't be bought. And it can't be taken away even if you have to walk everywhere.