AND NOT EXISTS (select ...)
wordt gebruikt om ervoor te zorgen dat de subquery geen rijen retourneert. Het heeft meestal alleen zin als de subquery gecorreleerd is (d.w.z. als het verwijst naar waarden uit de buitenste query), omdat het anders waar is voor elke resultaatrij (en niet echt van invloed is op de query), of onwaar is voor elke resultaatrij (en zorgt ervoor dat de query helemaal geen resultaten retourneert, zoals in uw geval). Ik denk wat je wilt is:
AND members.member_ID NOT IN (select shares.member_ID from shares where shares.asset_ID = '224')