Los formularios modales se cierran automáticamente cuando cambia el ModalResult del mismo, este ModalResult es el resultado del método que has llamado: ShowModal.
Hay dos formas de cambiar este modal result, como Delphi es un verdadero RAD, te permite hacerlo visualente, asignando la propiedad ModalResult de algunos componentes como los TButton. Entonces cuando alguien hace click en ese TButton si no se produce un error en la ejecución del evento, este botón le asignara su ModalResult al formulario automáticamente. Si el botón "Aceptar" de tu loguin tiene ModalResult = mrOk, simplemente en su código podría ser el que escribiste anteriormente, si este botón no tiene ModalResult, simplemente cuando la evaluación del usuario es correcta, podrías asignarselo al Form:
Código Delphi
[-]
...
if IBQuery1.IsEmpty then
raise Exception.Create('Usuario o contraseña inválido')
else
ModalResult := mrOk;
Saludos!