Infelizmente você não pode fazer isso puramente no MySQL. No conjunto de resultados você não pode ter linhas com (número de) colunas diferentes. Você precisa de alguma lógica de aplicativo implementada. O mais próximo que você pode chegar disso é:
select m.id, GROUP_CONCAT(voto SEPARATOR ',')
from messages m
left join votations v on v.messageID = m.id
group by m.id;
Isso retornará este formato:
ID GROUP_CONCAT(VOTO SEPARATOR ',')
1 2,5,6
2 2,12,3
Você pode ver isso funcionando aqui:http://sqlfiddle.com/#!2/241a8/ 3