really good question Thanks for post this question
sizeof return an unsigned number so -1 also converted into unsigned number which is very big in value that why it will give answer no.
if we type case first unsigned sizeof to int than it will give yes answer
#include <stdio.h>
int main()
{
if ((int)sizeof(int) > -1)
{printf("Yes");}
else
{printf("No");}
return 0;
}