Does query_posts have an effect on get_the_category?

The “main” query on the page is saved to a global called $wp_query. That global determines a great deal about the page, including both content and which template is used to display that content. Using $wp_query overwrites that main query and can cause some very basic things to fail but get_the_category() is probably not one of them.

It is more likely that there is something wrong with your Loop. What matters for get_the_category() is another global called $post. $post is set at each iteration of a proper Loop to the “current post”. If get_the_category() is not passed a post ID, it will assume that $post is the post in question.

Without seeing the code, that is the best I’ve got.