La tua query restituisce solo record, se sia A che la relativa B contengono il testo di ricerca.
Non dici cosa non funziona, però.
Perché non LEFT OUTER UNISCITI alle ricerche fulltext e sostituisci:
SELECT *, (ISNULL(ftTableA.[RANK], 0) + ISNULL(ftTableB.[RANK], 0)) AS total_rank
e
WHERE ftTableA.Key IS NOT NULL OR ftTableB.Key IS NOT NULL