AND NOT EXISTS (select ...)
se používá k zajištění toho, že poddotaz nevrací žádné řádky. Obvykle to dává smysl pouze tehdy, pokud je poddotaz korelován (tj. pokud odkazuje na hodnoty z vnějšího dotazu), protože jinak bude buď pravdivý pro každý řádek výsledku (a ve skutečnosti dotaz neovlivní), nebo bude nepravdivý pro každý řádek výsledku (a způsobí, že dotaz nevrátí vůbec žádné výsledky, jako ve vašem případě). Myslím co chceš je:
AND members.member_ID NOT IN (select shares.member_ID from shares where shares.asset_ID = '224')