MySQL Select previous row that matches condition
With MySQL 8 it would be much simpler using window functions.
The problem is with your data that you have no sequential order, so we have to get one by using row number.
This way we can compare the row numbers from the coplete table and those with has was_updated = 0.
This will only work in MySQL because it holds the ORDER BY from the inner select in MariaDB you have to use LIMIT to keep the order.


CREATE TABLE articles
    (`id` int, `category` int, `was_updated` int, `date_added` varchar(10))
;
    
INSERT INTO articles
    (`id`, `category`, `was_updated`, `date_added`)
VALUES
    (1, 2, 1, '10-01-2020'),
    (2, 2, 1, '11-01-2020'),
    (3, 2, 0, '13-01-2020'),
    (4, 2, 0, '20-01-2020'),
    (5, 1, 1, '22-01-2020'),
    (6, 2, 1, '23-01-2020'),
    (7, 2, 1, '02-02-2020'),
    (8, 2, 0, '29-01-2020')
;




SELECT 
    a3.id
FROM
    (SELECT 
        a.*, @rown2:=@rown2 + 1 rn
    FROM
        articles a, (SELECT @rown2:=0) t1
    ORDER BY id) a2
    INNER JOIN
    (SELECT 
           id, rn,`category`
        FROM
            (SELECT 
                a.*, @rown:=@rown + 1 rn
            FROM
                articles a, (SELECT @rown:=0) t1
            ORDER BY id) a1
        WHERE
            `was_updated` = 0) a3
ON 

a2.rn  + 1 = a3.rn
AND 
a2.`category` = a3.`category`
WHERE a2.`was_updated` = 1


| id |
| -: |
|  3 |
|  8 |


db&lt;&gt;fiddle here