Приветствую!
Для начала сто́ит код модификатора
then написать в кавычках:
[[+new:isnot=``:then=`
<img src="{$file['medium']}" alt="{$file['description']}" title="{$file['name']}" class="item new">
`:else=`
[[+old_price:isnot=``:then=`
<img src="{$file['medium']}" alt="{$file['description']}" title="{$file['name']}" class="item sale">
`:else=`
<img src="{$file['medium']}" alt="{$file['description']}" title="{$file['name']}" class="item">
`]]
`]]
А во вторых обратите внимание, что у Вас в любом случае выводится одна и та же строка с разницей в одно слово, поэтому можно условие записать вот так:
<img src="{$file['medium']}" alt="{$file['description']}" title="{$file['name']}" class="item[[+new:isnot=``:then=` new`:else=`[[+old_price:notempty=` sale`]]`]]">
Плюс избавились от второго
else.