Short answer is that your sql string contains a date that's unrecognizable to MySQL. Put a breakpoint just after building the string, run the code, then look at the content of the string; how's MySQL supposed to make sense of it?
As per MySQL reference material (link below), here's your updated line of code:
SQLQuery2 = "SELECT * FROM Mfg.databasemodels_note where typeId = " & Sheets("Sheet1").Range("B" & R).Value & " AND date < " & Format(Sheets("Sheet1").Range("I" & R).Value, "'YYYY-MM-DD Hh:NN:SS'") & " order by date asc limit 1;"
Real answer is that you never, ever want to build a SQL string containing user input, from scratch, because of SQL injection risks. Read How To Invoke a Parameterized ADO Query Using VBA/C++/Java for a quick overview of what you should be doing (on top of running your own basic validation).
Reference material: MySQL 5.7: The DATE, DATETIME, and TIMESTAMP Types / Visual Basic for Applications: Format Function
Further reading: VBA, ADO.Connection and query parameters / ADODB Command failing Execute with parameterised SQL query