I was just reading that in babies teething can cause them. They catch their cheeks while they're gunning at things and basically bruise them and the blood blister forms...so maybe that? If he seems uncomfortable it might be worth a trip to the doctor to be safe.
It looks like a blood blister. Those have that bright red color but don't bleed unless they pop. They're similar to canker sores, has baby tried any new food or chewed on anything that might have caused an allergic reaction? Food allergies tend to be the common cause for these (if that's what this is, I'm not a doctor I've just had them myself before).