One or more non-hyphens, followed by .jpg or .png:
^[^-]+\.(?:jpg|png)$
No need for negative lookahead. (Note that your existing regex is actually equivalent to just (\.(jpg|png)): the lookahead has no real effect, since no string could have (\.(jpg|png)) as a prefix and (-(100x100|350x350)) as a prefix.)
Edited to add: Your question seems somewhat self-contradictory, in that you initially say that you are "wanting to match files that have not already got thumbnails created", but then in your example, you say that you want to match image1.png even though it has had two thumbnails created.
You also, in my opinion, don't give clear rules for how to determine if an image is a thumbnail. Above, I took the simplest approach, which is to assume that thumbnails' filenames contain hyphens and other images' filenames do not. Alternatively, we might take the very narrowest definition of a thumbnail image, and say that "a file is a non-thumbnail image if its filename ends in a .jpg or .png that is not preceded by -100x100 or -350x350"; in that case, we can write:
^.*(?<!-100x100)(?<!-350x350)\.(?:jpg|png)\z
using negative lookbehind . . . assuming a regex-engine that supports negative lookbehind. (You don't mention what language you're using?) Without negative lookbehind, we can instead write:
^(?:[^-]|-(?!(?:100x100|350x350)\.(?:jpg|png)\z))*\.(?:jpg|png)\z
but then it's much simpler to just use two regexes:
\.(?:jpg|png)\z
-(?:100x100|350x350)\.(?:jpg|png)\z
and require that the string not match the second. Your question implies that you want to do this as a single affirmative regex, but you don't mention why?