In the first code, you provide a single indexing vector of length 2, namely c(TRUE, FALSE). Yes, this vector will be recycled until all the elements of x are covered.
In the second code, you do not have single indexing vector. Rather, you have provided a row indexing vector, namely c(TRUE), and a column indexing vector, namely c(FALSE). R is confused and is wondering why you are supplying row and column indexes for a 1 dimensional object, i.e., the vector x.
You may wish to go through the swirl package for a tutorial on vectors.
install.packages("swirl")
library("swirl")
swirl()
Hope that helps,
Snehal