Получить максимальный store_id и присоединиться к источнику
drop table if exists t;
create table t
( value_id int, attribute_id int, store_id int, row_id int, value int);
insert into t values
( 12101931 , 99 , 0 , 378050 , 4 ),
( 21858725 , 99 , 3 , 378050 , 1 ),
( 21861516 , 99 , 4 , 378050 , 1 ),
( 12101931 , 99 , 0 , 378051 , 4 ),
( 21858725 , 99 , 5 , 378051 , 1 ),
( 21861516 , 99 , 4 , 378051 , 1 ),
( 12101931 , 99 , 1 , 378052 , 4 ),
( 21858725 , 99 , 5 , 378052 , 1 ),
( 21861516 , 99 , 4 , 378052 , 1 ),
( 21861516 , 99 , 4 , 378053 , 1 );
select t.*
from t
join (select attribute_id, row_id, max(store_id) maxstore
from t
where attribute_id = 99 and store_id in(0,3)
group by attribute_id, row_id) s
on s.attribute_id = t.attribute_id and s.row_id = t.row_id and s.maxstore = t.store_id;
+----------+--------------+----------+--------+-------+
| value_id | attribute_id | store_id | row_id | value |
+----------+--------------+----------+--------+-------+
| 21858725 | 99 | 3 | 378050 | 1 |
| 12101931 | 99 | 0 | 378051 | 4 |
+----------+--------------+----------+--------+-------+
2 rows in set (0.00 sec)