Previous and Next links not populating, have I missed something?

As suggested by the default link labels, “Older Entries” and “Newer Entries”, get_next_posts_link() and get_next_posts_link() are for outputting links between pages of posts. If you only have 2 posts, and your posts per page setting is set to anything higher than 1, then you’re not going to have more than one page of any archive or your blog, so the links won’t appear.

If you want links between single posts, then the correct functions are get_next_post_link() and get_previous_post_link(). Those functions do need to be in the loop.

While it’s technically possible to use index.php for single posts and archives/the blog, you can avoid some confusion by starting with at least index.php for your lists of posts, and singular.php for single posts and pages. Use get_next_posts_link() and get_next_posts_link() for links between pages in index.php, outside the loop, but use get_next_post_link() and get_previous_post_link() for links between single posts in singular.php, inside the loop.