Tengo un problema similar:un campo varchar con intercalación utf8_bin que tiene una codificación ASCII-8BIT.
El problema está en la gema mysql2, no en Rails, ni en la configuración de mysql, al menos en mi caso, porque no ocurre con la gema ruby-mysql.
Pruebe si el problema desaparece cuando cambia a ruby-mysql.
El siguiente código, ejecutado desde irb en Ruby 1.9.2, demuestra el problema:
require 'mysql2'
c = Mysql2::Client.new(host: "localhost", username: "root", database: 'd')
c.query("select word from t where word = 'a'").to_a[0]["word"].encoding
# => #<Encoding:ASCII-8BIT>
Esto en una base de datos mysql donde cada configuración concebible se ha establecido en una intercalación utf8_bin.
En la gema mysql2, en el result.c
archivo en la línea 253, hay el siguiente fragmento:
if (fields[i].flags & BINARY_FLAG) {
rb_enc_associate(val, binaryEncoding);
} else ...
Creo que aquí es donde se establece la codificación binaria (ASCII-8BIT), tal vez debido a la intercalación utf8_bin ... Lo eliminé y resolvió el problema, pero estoy seguro de que probablemente presentará otros problemas, con manchas, por ejemplo.