A few things:
1) In a theme that contains files like single.php, page.php, index.php, archive.php, search.php, 404.php ...the index.php file only affects the blog homepage.
You need to edit single.php for single posts, and page.php for pages.
Read up on the Template Hierarchy for more information.
2) Although not entirely relevant considering the above point, the
if ( is_home() && ! is_front_page() ) conditional tag will only have an effect on a blog homepage that is not the front page. The exclamation point before
is_front_page() means "not."
For example, if the blog was displayed on example.com/blog/ instead of the front page. This would be set on the Reading Settings page.
So if your blog homepage was set to display on the front page (which is the WordPress default), that's why you didn't notice any difference even on the blog homepage.
Read up on Conditional Tags for more info.
3) I haven't looked into this particular situation, but in general...before I resort to modifying markup, I always make sure there's not a practical CSS-only way of handling things first.