Essa é uma variação do problema do "maior n por grupo" que surge no StackOverflow várias vezes por semana.
SELECT
a1.accessid,
a1.date,
a1.time
FROM
accesslog a1
LEFT OUTER JOIN
accesslog a2
ON (a1.accessid = a2.accessid AND a1.userid = a2.userid
AND (a1.date > a2.date OR a1.date = a2.date AND a1.time > a2.time))
WHERE a1.userid = '1234'
AND a2.accessid IS NULL;
A maneira como isso funciona é que tentamos encontrar uma linha (a2) que tenha o mesmo accessid e userid e uma data ou hora anterior à linha a1. Quando não conseguimos encontrar uma linha anterior, a1 deve ser a primeira fileira.
Re seu comentário, eu apenas tentei com os dados de amostra que você forneceu. Aqui está o que eu recebo:
+----------+------------+----------+
| accessid | date | time |
+----------+------------+----------+
| 1 | 2009-08-15 | 01:01:01 |
| 2 | 2009-09-01 | 14:01:01 |
+----------+------------+----------+
Estou usando o MySQL 5.0.75 no Mac OS X.