Das liegt nun mal in der SQL-Syntax für "in" begründet.
Alterantiv ginge dann folgender weg:

where position(Preisliste in Prl) > 0

PRL kann dann mit "A B C" gefüllt werden.

Allerdings kann dann kein Index verwendet werden.
Für die Eindeutigkeit kann man sich auch Hilfskonstanten einfallen lassen:

position('!' concat Preisliste concat '!' in Prl)
Prl = '!AB! !AC! !AD!'

um nicht Kombinationen zu finden die eigentlich ungültig sind.

Nachtrag:
Wenn bereits vorhanden, kann auch mit REGEXP_COUNT nach diversen Teilstrings mit einem Ausdruck komfortable suchen.