There are two kinds of ways to address IPv4 in an IPv6 network. A "mapped" address scheme, and a "compatibility" address. RFC-4291 discusses them both. MySQL lets you query both of these seperatly. The compat address scheme has since been deprecated.
IS_IPV4_COMPAT() is for the compat address scheme. Even though that is deprecated, there's implementation that implemented it, and is still in use, and people might need to store them in a database.
Use IS_IPV4_MAPPED if you want the behavior of the mapped address scheme.
Which of these formats you should use depends on what you need to use them for. e.g. if you store addresses that are input to configuration of computers, you'd need to know which format they support. If you don't know, use the newer and current format (::ffff:10.0.5.9)
And if you need to support both formats, use IS_IPV4_COMPAT(field) or IS_IPV4_MAPPED(field)
wyhen querying.