No soy muy amante del SQL Dinámico o "Código Rojito" como lo llamamos mis patas y yo, asi que te dejo esta propuesta haber q te parece.
Cita: SELECT *
FROM Pacientes
WHERE ( NOMBRE LIKE @NOMBRE OR @NOMBRE IS NULL) AND
( MADRE LIKE @MADRE OR @MADRE IS NULL) AND
( DIRECCION LIKE @DIRECCION OR @DIRECCION IS NULL) AND
( TEL LIKE @TEL OR @TEL IS NULL)
Por cierto esas claúsulas LIKE no estan cumpliendo su verdadera labor, en el código que presentas sería lo mismo poner "=".
Para buscar los que coincidan con el mismo nombre
Cita: NOMBRE = @NOMBRE OR @NOMBRE IS NULL
ó
Aquellos nombres que tengan la palabra dentro.
Cita: NOMBRE LIKE '%' + @NOMBRE + '%' OR @NOMBRE IS NULL
Saludos