O custo de desempenho é que sempre que o mysql precisa fazer uma conversão de tipo de qualquer coisa que você der para o tipo de dados da coluna. Então com sua consulta
Se col1 não for um tipo de string, o MySQL precisa converter '3' para esse tipo. Esse tipo de consulta não é grande coisa, pois a sobrecarga de desempenho dessa conversão é insignificante.
No entanto, quando você tenta fazer a mesma coisa quando, digamos, junta 2 tabelas que possuem vários milhões de linhas cada. Se as colunas no
ON
cláusula não são do mesmo tipo de dados, então o MySQL terá que converter vários milhões de linhas todas as vezes você executa sua consulta e que é onde entra a sobrecarga de desempenho.