How to get the size of the result of a SQL query?
There is no way.


EXPLAIN gives you an estimation; do not count on it being exact.
The number of bytes in a resultset is not directly available.  And attempts to estimate will be fraught with errors.
The structure of the QC is another variable -- there is overhead to take into account.
Since every row for a table in the QC is purged when any write to the table occurs, the QC is rarely useful at all.