What datasource are you using? Can you provide a sample query with condition? What is the output of your queries.
Have you tried using Math expression to somehow decide on that using boolean logic?
Another approach would be using Max calculation of Stat panel - if you can transpose your conditions to numbers (like Normal = 0, Warning = 1, Critical = 2), you can pick max calculation from stat panel, and there you have your solution. On the screen I have four prometheus queries producing output like shown before and transformation reduce applied:
If on data like this I take stat visualization and apply max calculation, I’ll get value 1, which (with value mappings) could be transposed to Warning string.