Der Test `\clist_if_in:NnTF` ist nicht expandierbar, weshalb es auch kein *predicate* gibt. Aber Du kannst den Test ja einfach von den anderen abtrennen:
abtrennen. Die Code-Verdopplung vermeidest Du dann am einfachsten, indem Du einfach ein neues Conditional definierst:
\documentclass{article}
\usepackage{xparse}
\ExplSyntaxOn
\clist_const:Nn \c_meinmodul_A_clist {a, b, c, d, e}
\clist_const:Nn \c_meinmodul_B_clist {c, d, e, f, g}
\prg_new_protected_conditional:Npnn \meinmodul_testfunktion:nn #1#2 {T,F,TF}
{
\clist_if_exist:cTF {c_meinmodul_#2_clist}
{
\clist_if_in:cnTF {c_meinmodul_#2_clist} {#1}
{
% andere Bedingungen:
\bool_if:nTF { \c_true_bool }
{ \prg_return_true: }
{ \prg_return_false: }
}
{ \prg_return_false: }
}
{ \prg_return_false: }
}
\NewDocumentCommand \IstEnthalten {m m}
{ \meinmodul_testfunktion:nnTF {#1} {#2} {ja} {nein} }
\ExplSyntaxOff
\begin{document}
\IstEnthalten{f}{A} % Nein
\IstEnthalten{f}{B} % Ja
\IstEnthalten{f}{C} % Nein, Liste C nicht definiert
\end{document}
Ergebnis:
> nein ja nein