As with others you've spoken to, I'm very out of practice with EE. However, if you look at the EE manual for conditionals, the way you've written this is recommended against. If you look here, it will tell you not to use brackets or quotes for variables in conditionals:
I'd try remedying this, as I recall EE has always been very touchy on such points, and it may solve your problem. In other words, no quotes or brackets on that left-hand variable.
In your next troubleshooting step, I think you mean a simple string value for "generic sting", but I think you'll find that "Yes" wouldn't be a logic value within a conditional, so this seems unlikely to tell you anything.
I'd try getting rid of the quotes and brackets around your variable first.
If this doesn't solve the problem by itself, you might try replacing that whole Stash call with a quoted string value that matches your override_market:child_ids variable exactly. I'm a little concerned that this variable appears by name to be plural - is it an array? In which case it will never by itself work in an EE conditional, would seem.
Given the problem shows to be in the stash call, it's possible you have one of the cases where parse="inward" is needed, in order to get the right order of evaluation so that the stash value is returned before the conditional is evaluated. Here's a stackexchange where that's mentioned and illustrated:
plugin value in a template conditional
Here also is a famous cheat sheet on EE parse order, and you can look up how parse inward relates to this.
Finally, there's also a new conditionals parser in EE 2.9, and you can read about that here, if you happen to be on that or a later version.
Good fortune - really the answer here should be simple, if you haven't been trying to compare two values that can't be compared (for example, if your variable is an array). Parse order can make it a bit trickier, but again parse inward properly applied should fix that without more complication if it's needed, from the look of this.