Character escaping rules for $form_state['redirect']
The rule for query strings is pretty simple; you need a key, and a value. The format for this key/value pair is:

key=value


Both the key and the value will be URL encoded, so any special characters are escaped. 

Take the = sign for example. Your sample code above uses:

circle_op=&lt;&amp;a%5Bvalue%5D=28&amp;a%5Bl%50 

as a key, and a value from the variable $location as a value. So without being escaped, your query string looks like this:

?circle_op=&lt;&amp;a%5Bvalue%5D=28&amp;a%5Bl%5D=VALUE_OF_LOCATION_VAR


Obviously if a browser was to encounter that URL it wouldn't know what to do; there are two equal signs, so it doesn't know what is supposed to be the key, and what is supposed to be the value. It can make a guess but that's not the point.

The URL that you are redirecting to is absolutely the correct one for the input you've given for your redirect URL.