SELECT id, name
FROM mytable
WHERE name IN ('B', 'A', 'D', 'E', 'C')
ORDER BY FIELD(name, 'B', 'A', 'D', 'E', 'C')
O CAMPO A função retorna a posição da primeira string na lista restante de strings.
No entanto, é muito melhor em termos de desempenho ter uma coluna indexada que represente sua ordem de classificação e, em seguida, classificar por essa coluna.