E' quello che trovavo strano nella tua domanda. Non si puo' risolvere senza cambiare lo scopo della query.
Potresti fare come qui sotto ma ti tornerebbe tutti i record di Tabella1.
WHERE prelievo_versamento = 0 AND (C.data BETWEEN B.data_inizio AND B.data_fine OR C.data IS NULL)