marking a post that was sticky on category template

Check if »sticky«

There’s the is_sticky()Conditional Tag, which you can read about in core here.

How-to mark as »sticky«

This works for posts, that have the “stick to the front page” check box checked:

How »sticky« works internally

So basically the function checks if the post-ID is inside get_option( 'sticky_posts' );. That means that you can’t question if a post was “sticky”. You can only check which posts are currently “sticky”.

Style as many »sticky« posts as you need & style »sticky« them specially

So your only chance would be to show only the number of sticky posts that you need 1) on the front page and skip the rest. Then you can apply to all your archive posts the post_class(); (inside the loop). This adds different classes to the post, but also the .sticky class for “sticky” posts. Which means, that you now have a way to style them differently.

.sticky {
    color: #FF00FF;
    background-color: #009ee0;
}

1) You can get the newest sticky posts with $newest_stickies = array_slice( rsort( get_option( 'sticky_posts' ) ), 0, 2 ); – change the last number to the number of posts you need. To add them to the loop, use 'post__in' => $newest_stickies as argument for your main/front-page query.