MySQL кеширует запросы даже при выключенном кешировании?
Это совсем не обязательно кэш.

Во-первых, при выполнении запроса MySQL подгружает в память все необходимые индексы. Если сразу после этого выполнить запрос повторно, индексы уже находятся в памяти, и это уменьшает время выполнения запроса.

Во-вторых, MySQL также на время кэширует план выполнения запроса.

как от этого избавиться?Я не думаю, что от этого стоит (или даже можно) избавляться. Вреда никакого, одна сплошная польза :)
я когда-то задвался таким вопросом, и вроде как нашёл ответ, что встроенный кэш не выключается