I can't possibly say why for sure, but I do believe your mother is correct in that you are probably giving off a fairly unapproachable aura. And since the very best way to make sure you don't get in a relationship is to "give up entirely," you've done a fine job of making yourself literally unapproachable by not being out there in the world. There's also a passivity in your language--you seem to have always been waiting for guys to like you, including the two years of waiting for his feelings to match yours.
"Always wanting to find a boyfriend" isn't going to do it. In fact, the more you want "a boyfriend" the less likely you are to find someone special. What you want to look for is "the" boyfriend in whom you can truly be interested, truly be comfortable around, truly want to get to know better and better, truly want to be yourself with. Twenty-six is hardly the end of your dating life, hon. Did you ever think that maybe the self-sabotaging behavior was your insight into yourself as a late bloomer? Maybe you didn't feel ready for a serious relationship, and that's why you "chose" the ones that wouldn't last. If you're feeling ready now, your luck should change. You'll present yourself as more available, with more integrity and authenticity.
Assuming you haven't given up on socializing, get busy. You're not looking for a boyfriend. You're looking to have fun and find things you enjoy doing in social settings where you can see and be seen and strike up natural conversations. Join a book club or a movie club. Take classes. Eat in parks instead of at home. Walk, walk, walk, and people watch. Take that outgoing personality out of the box and go for it.
Best of luck.