Como seguramente sabrás, los índices se usan para que las búsquedas sean muy rápidas (cláusula WHERE) y para que las tablas puedan mostrarse ordenadas según ese índice (cláusula ORDER BY).

Pero el Firebird no usa el índice siempre, solamente lo usa cuando habrá una ganancia de tiempo haciéndolo. Si no habrá ganancia de tiempo entonces accede a las filas de la tabla en su propio orden (el llamado NATURAL).

Si queremos que un índice se use, la condición siempre debe ser positiva ya que si la condición es negativa, el índice no será usado.

Estas condiciones sí usarán un índice (siempre que exista, desde luego)

WHERE MiNumero = 10
WHERE MiNumero > 10
WHERE MiNumero > 10 AND MiNumero < 20
WHERE MiNombre IS NULL
WHERE MiFecha BETWEEN '01/01/2010' AND '12/10/2010'

En cambio estas condiciones son negativas y por lo tanto no usarán un índice.

WHERE MiNumero <> 10
WHERE MiNumero IS NOT 10
WHERE MiNombre IS NOT NULL
WHERE MiFecha IS NOT BETWEEN  '01/01/2010' AND '12/10/2010'

¿Conclusión?

Evita los operadores NOT y <> siempre que puedas evitarlos, porque usarlos no te reportará beneficios.