I can see where Yurtgirl is coming from - the cancelling is not so much the "punishment" as not wanting to appear to her ds that she is to "rewarding" him ds with loads of presents despite the fact that he has been misbehaving.
At 3, they don't really yest understand the idea of birthdays - or of time - so even if it is re-scheduled for a month's time, he will still enjoy it on the day and not realise that there has been a delay. He will not know that it has been more than 12 months since his last birthday - and that there will be less than 12 months until his next birthday.
So no, I don't think you were cruel. And if your current regime of tractor stickers for good behaviour (presumably to be rewarded with presents he was going to get anyway?) is working, then GREAT.
Having said that, I PERSONALLY would have been disappointed in a similar situation, because, as others have said, at that age, the celebration is more about the PARENTS celebrating the day (and because I'm a big kid and love celebrations! ). After all, it was YOU that went through the birth on that day! But if you and your dh are happy with your decision to postpone, then that addresses that potential concern.
So I would suggest just saying to your mother that you and your dh are happy that you made the right decision and that in your view you are not cruel as he didn't know it was going to happen anyway. If you WANT to, you can explain that you didn't want to appear to reward his bad behaviour with loads of presents - but that you would like her to share in the day when you do have it. But I'd be careful about doing that - you don't want to have to justify your every parenting decision to her.