How to set default archive image without overriding first attached image? [closed]

You could use get_attached_media() function to check if the post has any attached images to it. Also, you use wrong logic operator. Your code would look like this:

$attached_images = get_attached_media('image', $post->ID);
if ( (get_the_post_thumbnail() == NULL) && empty($attached_images) ) {
 // show your default image
}
else
{
 // do nothing, I guess?
}