MariaDB/MySQL does not allow certain syntax in prepared statements, so it seems, at least for now, the mysql_query and the related async functions are needed to support the full SQL language.
I had a look at it in connection with paurkedal/ocaml-caqti#42, but if I've understood the MariaDB documentation correctly, the result processing of the non-prepared API is quite orthogonal to that of the prepared API. I suspect it would require significant refactoring or split of the result handling.