I really didn't think that's correct--though it's been a few years since I did SQL regularly.
SELECT *
FROM articles
WHERE last_updated >= %s
AND created_at IS NOT NULL
UNION
SELECT *
FROM articles
WHERE id IN (1, 2, 3)
AND created_at IS NOT NULL
That should give a list of all articles updated after whatever date (regardless of ID), appended to a list of all articles where the ID is 1, 2, or 3 (regardless of when they were last updated). I would expect to see extra articles that only fit one criteria or the other, and also duplicate articles.
I included the join quote because an inner join would be the way to do this, rather than a union--though it would likely be less efficient than just filtering on the required parameters.
If I'm wrong here, I'd love an explanation of why.