__has_includeはインクルードされたかどうかじゃなくて、
そのファイルが存在するかどうかを判定するやつだからね

hoge.hの中で
#define HOGE_LOADED
して、呼び出し側で
#if defined(HOGE_LOADED)
call();
#endif
って感じかな