aw Tali, First thing I will say is 2 wrongs don't make a right. You know he is not a bad person & its sad he says he hates himeself. But saying you are a crap mother isn't going to fix things.
You are obvioulsy a very caring Mum who loves her kids dearly. You reached out for help which is proof right there you are no a crap mum. A crap mum would have ignored her dons cry for help. You reassured him, told him you love him & helped him see the positives about himself. You reached out to his teacher & asked for help. A crap mum wouldn't have bothered.

I don't really know what to say to help your DS feel happier about himself.I would take on board what his teacher has to say & even ask to see the school counsellor maybe?