Isso não funciona porque o if é avaliado antes que o pedido seja passado para o backend, então as variáveis $ upstream_http_ ainda não têm nenhum valor. add_header com um valor vazio é ignorado, então você pode usar um mapa para adicionar condicionalmente o cabeçalho da seguinte forma:
map $upstream_http_strict_transport_security $sts {
'' max-age=15552000;
}
server {
location / {
add_header Strict-Transport-Security $sts;
}
}