Messing up with transient API – getting flushed on refresh

The first problem is that your parentheses are incorrect in your IF statement.

if ( ( $get_post_categories = get_transient( 'this_blog_categories' ) === FALSE ) )

Should be:

if ( ( $get_post_categories = get_transient( 'this_blog_categories' ) ) === false )

You’re wanting to assign the value, and then test that value against false. Because of your incorrect parentheses, what you’re doing is to compare the transient against false, then assign the result of that comparison to $get_post_categories. Comparisons have higher precedence than assignments in PHP.

That will likely fix your problem. However, you have another problem here:

set_transient( 'this_blog_categories', $get_post_categories );

Transients should have expiration times. Otherwise, your transient will never expire and you’ll never refresh the data at all.