MySQL doesn't have a UUID type, so naive implementations use (VAR)CHAR. Those in the know use BINARY(16) and MySQL 8 now has helper functions to convert to and from hex. Apparently MariaDB will soon have a native UUID type. PostgreSQL has had them from for years.
This article is about MySQL, apparently it's really the case in MySQL?
It's not the case in every rdbms universally. Postgres has a uuid type that stores them how you would (rightfully) expect.
I have no idea why MySQL does it this way, it does seem odd.