Simple illustration of the problem:
% coredumpctl list COREDUMP_PID=8212
TIME PID UID GID SIG PRESENT EXE
Sat 2014-11-29 13:17:03 CET 8212 1000 100 6 * /usr/bin/Xorg.bin
% coredumpctl list -1 COREDUMP_PID=8212
No match found.
The reason it fails to find a match with -1 is that then sd_journal_seek_tail()/sd_journal_previous() are used, else it's be seek_head()/next(); and apparently going backwards doen't work right.
As a test, I did a small program that uses similar matches (COREDUMP_PID=8212 AND MESSAGE_ID=fc2e22bc6ee647b6b90729ab34a250b1), if the loop with the call to sd_journal_get_data() is done with SD_JOURNAL_FOREACH(j) it works, with SD_JOURNAL_FOREACH_BACKWARDS(j) no matches are found.
Trying using another set of matches (on a COREDUMP_EXE this time), I get 13 matches going forward, only 12 going backwards.
No idea what's going on, but clearly going backwards in the journal doesn't work properly.
This is on up-to-date Arch Linux x86_64:
% systemctl --version
+PAM -AUDIT -SELINUX -IMA -APPARMOR +SMACK -SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID -ELFUTILS +KMOD +IDN
Fixed in git, with your patch! Thanks!