Not getting distinct results using case query
You have multiple rows in prod5219 for store store1, and each row has a unique set of values for concept and menusize.

Run this to check that out:

select storenumbers.*
    , prod5219.concept
    , prod5219.menusize
from storenumbers 
    left join prod5219 on storenumbers.storenumber = [Prod5219].store 


Simply adding distinct to the select clause doesn't magically remove "extra" rows from the output.  distinct simply returns rows that are unique, across all columns returned by the query.