1)


codice:
select * from tab_visite where
giorno
between 
CURDATE() - INTERVAL WEEKDAY(CURDATE()) DAY
and 
CURDATE() + INTERVAL 6 - WEEKDAY(CURDATE()) DAY

ti trova le visite nell'intervallo compreso tra lunedì e domenica della settimana corrente.
Se anzichè domenica vuoi le visite nell'intervallo lun-ven basta che metti interval 4.

2) E' sufficiente un inner join tra le due query

codice:
select tab_pazienti.*,tab_visite.giorno from tab_pazienti
inner join tab_visite
on tab_pazienti.id = tab_visite.id_paziente
where tab_pazienti.id = x
order by giorno desc
con x uguale all'id che ti interessa.