Lass Dir doch einfach mal den Controllernamen anstelle vom swag_attr21 ohne If ausgeben. Dann siehst Du doch, wie der passende Name in den verschiedenen Listen ist.
Und immer schön den Cache leeren.
den Controller-Namen kannst du in Shopware 5 über die Smarty Funktion {controllerName} abfragen:
{if {controllerName} === 'home'}
{* do your home specific stuff here *}
{/if}
Dein Code-Beispiel lässt darauf schließen, dass du die Artikel-Box der Einkaufswelten bearbeiten willst. Beachte hierbei dass der Controller-Name der Einkaufswelten immer Emotion ist, egal ob die Einkaufswelt auf der Startseite oder in einer Kategorie einbunden wird.
Also, der Controller ist dann emotion. Und wenn ich dann das Element nur im Listing anzeigen lassen möchte, was mache ich dann? Auf der Startseite ist auch eine Einkaufswelt mit Slidern.
Einkaufswelten werden immer über einen eigenen request geladen. Der controller dafür ist immer emotion. Du kannst im Shopware standard innerhalb der Einkaufswelt nicht erkennen auf welcher Seite sie geladen wird.