Your filter is basically altering every front end query for all logged in users that can upload files. You need to be more specific about what queries to alter.
This will get you started
add_action('pre_get_posts','allow_pending_posts_wpse_103938');
function allow_pending_posts_wpse_103938($qry) {
if (!is_admin() && current_user_can('upload_files') &&
$qry->is_main_query()) {
$qry->set('post_status', array('publish','pending','draft'));
}
}