I use the following queries to retrieve 100 and 101 rows from the database and communication sessions after a time that is completely different (the second query is ~ 8 slower than the first):
SELECT TOP (100) * FROM PhotoLike WHERE photoAccountId=@accountId AND accountId<>@accountId ORDER BY createDate DESC GO
SQL Server Runtime: CPU time = 187 ms, elapsed time = 202 ms.
SELECT TOP (101) * FROM PhotoLike WHERE photoAccountId=@accountId AND accountId<>@accountId ORDER BY createDate DESC GO
SQL Server Runtime: CPU time = 266 ms, elapsed time = 1644 ms.
Implementation plan for the first two cases: 
But if I get rid of the @accoundId variable, I get the following results, which are approximately equal and more than 2 times faster than the first query from this question.
SELECT TOP (100) * FROM PhotoLike WHERE photoAccountId=10 AND accountId<>10 ORDER BY createDate DESC GO
SQL Server Runtime: CPU time = 358 ms, elapsed time = 90 ms.
SELECT TOP (101) * FROM PhotoLike WHERE photoAccountId=10 AND accountId<>10 ORDER BY createDate DESC GO
SQL Server Runtime: CPU time = 452 ms, elapsed time = 93 ms.
Implementation plan for the second two cases: 
Why is this happening and how can I improve performance with varibales?
UPDATE
Implementation plans added.