Esta é uma pergunta antiga, mas acabei de receber isso hoje e encontrei uma solução (e sim com errno =-1).
Nossa tabela é InnoDB e foi criada e destruída a cada poucas horas. Recentemente, iniciamos um servidor escravo para seguir esse mestre. Também usamos a opção "innodb_file_per_table".
O erro ocorreria apenas no escravo, não no mestre. O problema era que recentemente sincronizamos esse escravo com o mestre usando rsync algumas horas antes.
O Rsync copiou o arquivo da tabela, mas foi deletado pelo mestre nesse meio tempo, pois era uma tabela temporária. O arquivo .idb existia, portanto, no escravo, mas não mais no mestre.
Quando o mestre enviou uma solicitação para criar a tabela, o escravo não conseguiu, pois o arquivo já estava lá. O MySQL não sabia que existia uma tabela, pois os metadados diziam que não havia nenhuma tabela lá. Estou assumindo que o MySQL estava tentando criar o arquivo, mas como estava lá, falhou.
No meu caso, a solução foi excluir o arquivo .idb em outra pasta (é claro que com uma cópia de backup primeiro).
Depois disso, o banco de dados nos permitiria criar a tabela, e o escravo seguiria o mestre novamente
Uma maneira melhor de fazer esse rsync seria usar uma opção --delete para remover qualquer arquivo antigo que tenha desaparecido do mestre.
De qualquer forma - você pode não ter essa situação exata como descrevi, mas pode ser simplesmente um arquivo obsoleto que foi deixado lá por um motivo ou outro.