You are right, I was half asleep when I wrote this!
There is validity to this approach, nonetheless. However, you probably want to take advantage of the finality of the true/false decision in an IF function. If a condition is evaluated as false, it cannot become true again. So, going by the original specs posted by abro, this is a good statement.
=IF(OR(A1<1, A1>35), "Invalid", IF(A1<5, "Scene 4", IF(A1<10, "Scene 3", IF(A1<25, "Scene 2", "Scene 1")))))
Since, at every nested IF statement, you check whether a certain condition is true, then if the formula moves on to the next condition, you know the previous condition must have been false. For example, if A1<5 is false for Scene 4, you know that A1 is >=5. There is no need to check for it again for Scene 3. At the end, since you already checked from A1>35 in the first statement, you know that if A1<25 is false, then A1 must be somewhere between 25 and 35.
It's all about how you structure the logic. The main thing I don't like about this approach is the nesting of IF statements - it's difficult to debug when you miss a parenthesis somewhere. The VLOOKUP approach eliminates the need for nested formulas, but also requires a separate table (or an array constant) to be used. There are advantages and drawbacks to either approach.