MySQL Explain gives different result for same query, query performance changes
Thanks for confirming that innodb_buffer_pool_size is OK.

Here are some ideas; I don't know which will be best:

Plan A

pricelist:  INDEX(pCurrent, tagged_to)
materials:  INDEX(companyID, article_nr_lev)


Plan B

SELECT STRAIGHT_JOIN ...
    FROM pricelist ...    -- first
    JOIN pricelist_entries ...
    LEFT JOIN materials


Please provide SHOW CREATE TABLE for each table; there could be some more clues there.

More

materials.article_nr_lev = pricelist_entries.peArtnr -- Whenever JOINing, the datatypes must be the same (or 'close').  Those two value are probably close enough -- same collation (mandatory) and both VARCHAR.  But they are of different lengths; I think that is 'close enough'.  However, do you sometimes need 255 characters, and sometimes need only 50?  For various subtle reasons (having to do with the execution of queries), it is better to keep VARCHAR sizes smaller (yet large enough to be safe).  I suspect the 255 could be changed to 50 without harm.

Also you have a lot of 4-byte INT fields that could probably be turned into smaller fields (eg, 2-byte SMALLINT UNSIGNED).  Shrinking table sizes often leads to improved performance, albeit minor.

category int(11) NOT NULL COMMENT '0 - Inget val 1 - Alkov 2 - ... -- Consider using ENUM.  That would avoid remembering the mapping.  (And take 1 byte instead of 4.)

Be careful about CHARCTER SET -- some columns are dec8, some are utf8.  The may be issues with comparisons, conversions, etc.  (I haven't noticed any problems with the query in question.)