AND NOT EXISTS (select ...)
се използва, за да се гарантира, че подзаявката не връща никакви редове. Обикновено има смисъл само ако подзаявката е корелирана (т.е. ако се отнася до стойности от външната заявка), тъй като в противен случай тя или ще бъде вярна за всеки ред с резултати (и всъщност няма да повлияе на заявката), или ще бъде невярна за всеки ред с резултати (и ще доведе до това, че заявката не връща никакви резултати, както е във вашия случай). Мисля това, което искате е:
AND members.member_ID NOT IN (select shares.member_ID from shares where shares.asset_ID = '224')