Det fremgår ikke særlig tydeligt af dit spørgsmål, hvilken parameter du har problemer med at implementere "ALLE"-filtreringen på. Men fra at se på dine to forespørgsler ser det ud til, at det er @p_ServerName parameter. I din første forespørgsel ser de to andre ud til at have fået 'ALL'-filtreringen udført korrekt.
Så problemet må være her:
(c1.SystemName = @p_ServerName OR c1.SystemName = c1.SystemName)
For det første, hvad forsøger du at opnå med den anden del? c1.SystemName=c1.SystemName vil altid være sand (medmindre c1.SystemName er NULL og hvis det er dit mål, så brug c1.SystemName IS NOT NULL
Jeg synes, det her burde se mere ud som:
(example@sqldat.com_ServerName OR @p_ServerName='all')
Det er sådan, du har implementeret de to andre parametre, så måske mangler jeg noget.
Desuden er jeg ikke sikker på, hvad du mener, når du siger, at UNIONed-forespørgselsløsningen må være, hvordan SSRS gør tingene. SSRS omskriver ikke dine forespørgsler baseret på parametrene, det fastholder bare værdierne i disse variabler, så du kan bruge dem i din forespørgsel. Hvis din parameter @p_ServerName er en streng, så er det bare en VARCHAR-variabel med tegnene "alle" i.