What's difference between these 2 statements?
I was answering the question it its first form, where there were parentheses and the queries were syntactically correct (before the edits that removed parentheses):


  Which is correct? or both? Why? 
  
  1st: 

INSERT INTO table (num) VALUES 
((SELECT COUNT(*) + 1 FROM table));

  
  2nd:

INSERT INTO table (num) VALUES 
((SELECT COUNT(*) FROM table) + 1);



In this instance, they are identical except for perhaps the execution plan which honestly probably wouldn't be very different anyways.
I prefer the first one in terms of readability.  Generally, unless there is a windowed function or sub-query, there's no reason to have the +1 after the full select/from statement.  There's no really a good reason to nest the statement with all the extra parenthesis.  In fact, I could see how the second option would cause some confusion in terms of readability. 

One more point, when you're using a SELECT for the values on an insert statement, you don't actually need the keyword values.  To simplify try this

INSERT INTO table (num) 
SELECT COUNT(*) + 1 
FROM table