El costo de rendimiento es que cada vez que mysql necesita hacer una conversión de tipo de lo que sea que le dé al tipo de datos de la columna. Así que con tu consulta
Si col1 no es un tipo de cadena, MySQL necesita convertir '3' a ese tipo. Este tipo de consulta no es realmente un gran problema, ya que la sobrecarga de rendimiento de esa conversión es insignificante.
Sin embargo, cuando intenta hacer lo mismo cuando, por ejemplo, une 2 tablas que tienen varios millones de filas cada una. Si las columnas en ON
no son del mismo tipo de datos, entonces MySQL tendrá que convertir varios millones de filas cada vez ejecuta su consulta, y eso es donde entra en juego la sobrecarga de rendimiento.