Creo que lo más fácil sería tener una tabla ficticia/temporal con solo identificadores. 1-1000 luego se une a esa tabla.
Pero asegúrese de eliminar los registros "eliminados" de su tabla ficticia/temporal una vez que haya terminado. De lo contrario, aparecerán siempre.
>> EDITAR << Puedes unirte a ti mismo para averiguar si te faltan identificaciones...
select a.id + 1 MissingIds
from <table> a
left join <table> b
on a.id = b.id - 1
where b.id is null
and a.id < 10000