Rich text fields are a little wonky. ISNULL and ISBLANK don't work
with this field type, period.
To check NULL on this data type field we need to use LEN. It basically calculates the number of characters.
So if you have VR like this: LEN(richText__c) = 0
If you insert an image in the field, the rule will not fire. It will only fire once you add a space before or after the image. So basically it's counting the characters.
But why richText__c = '' this fired?
That's because it's doing the same thing as LEN and only counting characters. Why we should not use this to check NULL in general because it only checks the size and not the initialization in the memory(NULL check).
Article for reference: https://help.salesforce.com/articleView?id=000329422&type=1&mode=1