I too have struggled with guilt.
I went through a period of time in my life when I wasn't well, and I wasn't there for my kids - like most moms are.
What I have learned to do, is to say "You know what? I did the BEST I could under the circumstances". That's a very powerful statement. Because it is true.
You did the best you could. You were a single mom. You provided the best love, care and support for your child. You were stressed, you were alone, you probably had some hardships mentally (stress from your ex's mother..) and feeling crappy you didn't have a dad for him ... all that takes a toll. Be gentle to yourself. Forgive yourself. Lady - you did your best. You were a great mom. So what if you didn't do the typical pregnancy stuff - announcements, maternity pictures or a baby book. Do you honestly think that matters in the grand scheme of things?
I did that for one of my kids. The other ones looked at it the other day (were going through boxes) and they just went "Oh.." and that was that. It really is not that important.
The thing is, some day, if you want, you can make him a special scrap book. That can be a healing experience for you. When you feel like it. Go back and make it about something else. Doesn't have to be a baby book. Lots of people lose those things - in fires, etc. They are just things. You loved your son. He's probably a great kid, because he had a great mom. Focus on what you did give him - the important stuff. Those other things - not important.
You did the best you could - and that was more than enough. Just keep repeating that to yourself. No one is asking you to have done any more than that. Plenty of people had it all and don't love their kids any more :)
As for dating, etc. Maybe you lack trust in yourself. I think forgive yourself, love yourself, build up your self confidence about yourself, and feel you are deserving - and it will come :)