You don't need to join dbo.QualHolder
table two times.
Try it this way:
SELECT a.qualholderid,
b.fullname,
b.surname,
d.name,
b.dob,
b.rescountryid,
a.recvdate
FROM dbo.apn a
INNER JOIN dbo.qualholder b
ON a.qualholderid = b.id
INNER JOIN dbo.gender d
ON b.gender = d.id
WHERE b.rescountryid = 48