Eu não tinha certeza se mudar a lista ENUM() não é possível, então fiz um teste. No MySQL v5.1.58 fiz uma tabela InnoDB de teste que contém um campo chamado 'bool' do tipo ENUM('yes', 'no').
Então eu executei...
ALTER TABLE `test`
CHANGE `bool` `bool` ENUM( 'yes', 'no', 'maybe' )
CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL
...e funcionou.
Será que fiz algo errado? É dependente do motor db? Por que todo mundo diz que mudar uma lista ENUM() não é possível? por exemplo. aqui http://komlenic.com/244/8-reasons-why-mysqls-enum-data-type-is-evil/
Enquanto a mesa estiver vazia, não há problema. Contanto que novos valores para ENUM sejam anexados e não renomeados em uma tabela preenchida, novamente não há problema.
O ENUM que você redefiniu em sua pergunta realmente manteve os valores internos originais para sim e não, conforme a última tabela de teste o lembrou.
O seguinte se aplica a tabelas preenchidas:
O que dizer disso?
Agora você tem um problema. Os valores ENUM em uma tabela totalmente preenchida teriam seus valores internos invertidos, de modo que sim agora é não e não agora sim.
O que dizer disso?
Grande problema. Em uma tabela preenchida, sim agora é talvez. Novas linhas inseridas com sim são desconectadas das linhas sim anteriores porque agora significam talvez.
RESUMO
Existem técnicas de isca e troca de alto risco para fazer isso muito rapidamente no MyISAM . Eu desaconselharia fortemente fazer isso no InnoDB por causa de sua interação de id de tablespace com ibdata1.