Я не думаю, что вы можете сделать это в одну строку. Но вы можете попробовать определить переменную для объединенного значения вместо дублирования кода для тега. Кроме того, вы должны проверить на ноль конкретно? Вы не можете просто отменить условия и проверить, существует ли значение?
<sly data-sly-test.concatenatedURL="${['/', hit.properties.sling:vanityPath] @ join = ''}"/>
<a href="${hit.properties.sling:vanityPath ? concatenatedURL : hit.path @ extension='html'}"/>