Eine ähnliche Frage hatte ich bereits gestellt, hier eine Variante:

Das Beispiel funktioniert so (natürlich) nicht, da der Inhalt von #1 kein string
ist. Ein Makro auch nicht. Aber was ist es dann?

Code:
\documentclass{minimal}
\usepackage{etoolbox}
\newcommand{\abc}{r}
\newcommand{\test}[1]{\ifdefstring{\abc}{r}{#1}{nuescht}}
\begin{document}
\test{q} \test{r} \test{s}
\end{document}