If Grafana is calling calling the query_range endpoint rather than query, then you are running a *graph* of this query (swept over a time range) instead of an *instant* query. This query will be very expensive: it will effectively be repeating the same query from time T1 to time T2, at some interval, but each step looks back over 30 days of data.
You need to run this as an *instant* query. It will then tell you servers which have been down between the current instant and whatever offset you put in.
I would expect that a grafana *variable* query would be an instant query. However you definitely don't want to use an expression like this as something to draw a graph of. In that case, you just want to draw a graph of "up".