Something strange happening with my wordpress blog theme

I coded a wordpress blog theme, and i have used a sticky post as a sort of “introductory” post on the blog… It displays exactly how i want it to at the top of the first page, however for some reason when you click on older posts to go to the second page, 2 or 3 posts down it appears again directly underneath a blog post? This is the loop I used… Im wondering if anyone can help me spot the problem? As obviously I only want the sticky post to display at the top of the first page only…

			<section id="posts">
			
			<?php if (have_posts ()) : ?>
			<?php while(have_posts()) : the_post(); ?>

			<?php if(is_sticky()):?>
				<article id="sticky_post"><?php the_content(); ?></article>
			<?php elseif(!is_sticky()):?>

				<article>
					<h2 class="post_title"><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
					
					<p class="date"><?php the_time('F jS, Y') ?><br />
					Posted in: <?php the_category(', ') ?></p>
					
					<div class="grey"><?php the_content(''); ?></div>
					
					<a href="<?php the_permalink() ?>" class="readmore">Read More...</a>
				</article>

			<?php endif;?>
			
			<?php endwhile; ?>
			
			<ul id="older_newer">

				<li id="older"><?php next_posts_link('Older Posts') ?></li>
				<li id="newer"><?php previous_posts_link('Newer Posts') ?></li>

			</ul>
			
			<?php else : ?>
			
				<h2>Nothing Here!</h2>
				
			<?php endif; ?>
			
			</section>

You’re missing a lot of semicolons at the end of several PHP statements.

added them in but its made absolutely no difference, same issue still happening