Ponerlo en el mismo query con exists no se va a poder porque no vas a tener la condicion que exista o que no exista :S y si le ponemos un OR siempre va a entrar porque mientras se cumpla una condicion el OR regresa un valor.
Lo mas sencillo seria hacerlo de esta manera:
Código SQL:
Ver originalDECLARE @parametro1 INT
DECLARE @parametro2 INT
SET @parametro1=NULL
SET @parametro2=NULL
SELECT @parametro1=id FROM Usuarios WHERE parametro IN('portal_usuario') AND valor IN('ElUsuario')
SELECT @parametro2=id FROM Usuarios WHERE parametro IN('portal_password') AND valor IN('ElPasswordDelUsuario')
IF isnull(@parametro1,0)<>0 AND isnull(@parametro2<>0)
SELECT fecha,nombre,NoTrans FROM Registros
WHERE usuario = 'ElUsuario'
AND fecha >= CONVERT(datetime,'2017-03-01T00:00:00.000') AND fecha <= CONVERT(datetime,'2017-03-31T23:59:59.997')
ORDER BY fecha
OFFSET 0 ROWS
FETCH NEXT 1000 ROWS ONLY
ELSE
otra cosa